#include <pybind11/pybind11.h>
#include "driver.h"
#include "simulator.cuh"

namespace pim
{

    /**
     * The latest crossbar mask
     */
    RangeMask driverCrossbarMask = ALL_CROSSBARS;
    /**
     * The latest row mask
     */
    RangeMask driverRowMask = ALL_ROWS;

    /**
     * Updates the crossbar mask to the given mask
     * @param mask
     */
    void driverSetCrossbarMask(RangeMask mask)
    {
        if (driverCrossbarMask != mask)
        {
            perform(((((((mask.step << LOG_NUM_CROSSBARS) | mask.stop) << LOG_NUM_CROSSBARS) | mask.start) << 1) << 2) |
                    MicrooperationType::MASK);
            driverCrossbarMask = mask;
        }
    }

    /**
     * Updates the row mask to the given mask
     * @param mask
     */
    void driverSetRowMask(RangeMask mask)
    {
        if (driverRowMask != mask)
        {
            perform((((((((mask.step << LOG_CROSSBAR_HEIGHT) | mask.stop) << LOG_CROSSBAR_HEIGHT) | mask.start) << 1) |
                      1)
                     << 2) |
                    MicrooperationType::MASK);
            driverRowMask = mask;
        }
    }

    template <>
    int read<int>(size_t crossbar, size_t row, size_t reg)
    {

        // Update the masks if necessary
        driverSetCrossbarMask({crossbar, crossbar, 1});
        driverSetRowMask({row, row, 1});

        // Perform the read micro-operation
        dtype res = perform((reg << 3) | MicrooperationType::READ_WRITE);
        return reinterpret_cast<int &>(res);
    }

    template <>
    float read<float>(size_t crossbar, size_t row, size_t reg)
    {

        // Update the masks if necessary
        driverSetCrossbarMask({crossbar, crossbar, 1});
        driverSetRowMask({row, row, 1});

        // Perform the read micro-operation
        dtype res = perform((reg << 3) | MicrooperationType::READ_WRITE);
        return reinterpret_cast<float &>(res);
    }

    template <>
    bool read<bool>(size_t crossbar, size_t row, size_t reg)
    {

        // Update the masks if necessary
        driverSetCrossbarMask({crossbar, crossbar, 1});
        driverSetRowMask({row, row, 1});

        // Perform the read micro-operation
        dtype res = perform((reg << 3) | MicrooperationType::READ_WRITE);
        return bool(res & 0x1);
    }

    template <>
    void write<int>(size_t crossbar, size_t row, size_t reg, int data)
    {

        // Update the masks if necessary
        driverSetCrossbarMask({crossbar, crossbar, 1});
        driverSetRowMask({row, row, 1});

        // Perform the write micro-operation
        perform((((reg | ((otype)(reinterpret_cast<dtype &>(data)) << LOG_CROSSBAR_R)) << 1) | 0x1) << 2 | MicrooperationType::READ_WRITE);
    }

    template <>
    void write<float>(size_t crossbar, size_t row, size_t reg, float data)
    {

        // Update the masks if necessary
        driverSetCrossbarMask({crossbar, crossbar, 1});
        driverSetRowMask({row, row, 1});

        // Perform the write micro-operation
        perform((((reg | ((otype)(reinterpret_cast<dtype &>(data)) << LOG_CROSSBAR_R)) << 1) | 0x1) << 2 | MicrooperationType::READ_WRITE);
    }

    template <>
    void write<bool>(size_t crossbar, size_t row, size_t reg, bool data)
    {

        // Update the masks if necessary
        driverSetCrossbarMask({crossbar, crossbar, 1});
        driverSetRowMask({row, row, 1});

        // Perform the write micro-operation
        perform((((reg | ((otype)(dtype(data)) << LOG_CROSSBAR_R)) << 1) | 0x1) << 2 | MicrooperationType::READ_WRITE);
    }

    template <>
    void writeMulti<int>(RangeMask crossbars, RangeMask rows, size_t reg, int data)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the write micro-operation
        perform((((reg | ((otype)(reinterpret_cast<dtype &>(data)) << LOG_CROSSBAR_R)) << 1) | 0x1) << 2 | MicrooperationType::READ_WRITE);
    }

    template <>
    void writeMulti<float>(RangeMask crossbars, RangeMask rows, size_t reg, float data)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the write micro-operation
        perform((((reg | ((otype)(reinterpret_cast<dtype &>(data)) << LOG_CROSSBAR_R)) << 1) | 0x1) << 2 | MicrooperationType::READ_WRITE);
    }

    template <>
    void writeMulti<bool>(RangeMask crossbars, RangeMask rows, size_t reg, bool data)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the write micro-operation
        perform((((reg | ((otype)(dtype(data)) << LOG_CROSSBAR_R)) << 1) | 0x1) << 2 | MicrooperationType::READ_WRITE);
    }

    template <>
    void add<int>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83c0f03ca);
        perform(0x1f83c00001a | (regX << 5) | (regY << 15));
        perform(0x1f83e0f83ea);
        perform(0x1f83e0f03d2);
        perform(0x1f83a0e83aa);
        perform(0x1f83a000012 | (regX << 5) | (regX << 15));
        perform(0x1f8380e038a);
        perform(0x1f838000012 | (regY << 5) | (regY << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360e03ba);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d8372);
        perform(0x2f0be1e87b2);
        perform(0x2f0ba2f8bf2);
        perform(0x2f0be2f8bea);
        perform(0x2f0be2f0bd2);
        perform(0x2f0be1f07d2);
        perform(0x2f0bc2f0bca);
        perform(0x2f0bc2f8bf2);
        perform(0x4e13e2e8bb2);
        perform(0x4e13a4f93f2);
        perform(0x4e13e4f93ea);
        perform(0x4e13e4f13d2);
        perform(0x4e13e2f0bd2);
        perform(0x4e13c4f13ca);
        perform(0x4e13c4f93f2);
        perform(0x8c23e4e93b2);
        perform(0x8c23a8fa3f2);
        perform(0x8c23e8fa3ea);
        perform(0x8c23e8f23d2);
        perform(0x8c23e4f13d2);
        perform(0x8c23c8f23ca);
        perform(0x8c23c8fa3f2);
        perform(0x1843e8ea3b2);
        perform(0x1843b0fc3f2);
        perform(0x1843f0fc3ea);
        perform(0x1843f0f43d2);
        perform(0x1843e8f23d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0fc3f2);
        perform(0x1843e0e83b2);
        perform(0x1843b0fc3f2);
        perform(0x1843f0fc3ea);
        perform(0x1843f0f43d2);
        perform(0x1843e0f03d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0fc3f2);
        perform(0x10c23e0e83b2);
        perform(0x10c23a8fa3f2);
        perform(0x10c23e8fa3ea);
        perform(0x10c23e8f23d2);
        perform(0x10c23e0f03d2);
        perform(0x10c23c8f23ca);
        perform(0x10c23c8fa3f2);
        perform(0x8e13e0e83b2);
        perform(0x8e13a4f93f2);
        perform(0x8e13e4f93ea);
        perform(0x8e13e4f13d2);
        perform(0x8e13e0f03d2);
        perform(0x8e13c4f13ca);
        perform(0x8e13c4f93f2);
        perform(0x4f0be0e83b2);
        perform(0x4f0ba2f8bf2);
        perform(0x4f0be2f8bea);
        perform(0x4f0be2f0bd2);
        perform(0x4f0be0f03d2);
        perform(0x4f0bc2f0bca);
        perform(0x4f0bc2f8bf2);
        perform(0x2f87e0e83b2);
        perform(0x2f87a1f87f2);
        perform(0x2f87e1f87ea);
        perform(0x2f87e1f07d2);
        perform(0x2f87e0f03d2);
        perform(0x2f87c1f07ca);
        perform(0x2f87c1f87f2);
        perform(0x1f83e0f83ea);
        perform(0x1003e0f83e2);
        perform(0x2f87e0e83b2);
        perform(0x2f0be1e87b2);
        perform(0x1f83c0f03ca);
        perform(0x1f83c00001a | (regX << 5) | (regY << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0003da | (regX << 15));
        perform(0x1f8380e038a);
        perform(0x1f8380003da | (regY << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000e03ba | (regZ << 25));
        perform(0x1f83c0f03ca);
        perform(0x1f83c0f801a | (regZ << 5));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0003da | (regZ << 15));
        perform(0x1f8380e038a);
        perform(0x1f8380f83da);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000e03ba | (regZ << 25));
    }

    template <>
    void add<float>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1d03e0f83ea);
        perform(0x1d03c0f03ca);
        perform(0x4b8fc000012 | (regX << 5) | (regX << 15));
        perform(0x4c13c100412 | (regX << 5) | (regX << 15));
        perform(0x4c97c200812 | (regX << 5) | (regX << 15));
        perform(0x4b1bc300c12 | (regX << 5) | (regX << 15));
        perform(0x1c8fe3f0fd2);
        perform(0x1f5fd7f5fca);
        perform(0x1f5fd705c12 | (regX << 5) | (regX << 15));
        perform(0x1f5fb7edfaa);
        perform(0x2edfb7f5fd2);
        perform(0x2f63d7edfb2);
        perform(0x4e63b8f63d2);
        perform(0x4f6bd8ee3b2);
        perform(0x1d6bbaf6bd2);
        perform(0x1f7bdaeebb2);
        perform(0x1d6bfafebea);
        perform(0x1d6bfef7bd2);
        perform(0x1d03c0f03ca);
        perform(0x1d03a0e83aa);
        perform(0x4b8fa000012 | (regY << 5) | (regY << 15));
        perform(0x4c13a100412 | (regY << 5) | (regY << 15));
        perform(0x4c97a200812 | (regY << 5) | (regY << 15));
        perform(0x4b1ba300c12 | (regY << 5) | (regY << 15));
        perform(0x1c8fc3e8fb2);
        perform(0x1f5fb7edfaa);
        perform(0x1f5fb705c12 | (regY << 5) | (regY << 15));
        perform(0x1f5f97e5f8a);
        perform(0x2edf97edfb2);
        perform(0x2f63b7e5f92);
        perform(0x4e6398ee3b2);
        perform(0x4f6bb8e6392);
        perform(0x1d6b9aeebb2);
        perform(0x1f7bbae6b92);
        perform(0x1d6bdaf6bca);
        perform(0x1d6bdeefbb2);
        perform(0x1f5f77ddf6a);
        perform(0x1f5f7705c12 | (regY << 5) | (regY << 15));
        perform(0x1f5f37cdf2a);
        perform(0x1f5f37ddc1a | (regX << 5));
        perform(0x1f5f57d5f4a);
        perform(0x1f5f57cdf32);
        perform(0x1f5f17c5f0a);
        perform(0x1f5f1705c12 | (regX << 5) | (regX << 15));
        perform(0x1f5ef7bdeea);
        perform(0x1f5ef7ddf72);
        perform(0x1f5ed7b5eca);
        perform(0x1f5ed7bdf1a);
        perform(0x1f5f17c5f0a);
        perform(0x1f5f17b5ed2);
        perform(0x1bdf17d5f52);
        perform(0x2ee758c6312);
        perform(0x2ee719d6752);
        perform(0x2ee759d674a);
        perform(0x2ee759ce732);
        perform(0x2ee758ce332);
        perform(0x2ee739ce72a);
        perform(0x2ee739d6752);
        perform(0x1def59c6712);
        perform(0x1def1bd6f52);
        perform(0x1def5bd6f4a);
        perform(0x1def5bcef32);
        perform(0x1def59ce732);
        perform(0x1def3bcef2a);
        perform(0x1def3bd6f52);
        perform(0x1def57c5f12);
        perform(0x1def1bd6f52);
        perform(0x1def5bd6f4a);
        perform(0x1def5bcef32);
        perform(0x1def57cdf32);
        perform(0x1def3bcef2a);
        perform(0x1def3bd6f52);
        perform(0x4ee757c5f12);
        perform(0x4ee719d6752);
        perform(0x4ee759d674a);
        perform(0x4ee759ce732);
        perform(0x4ee757cdf32);
        perform(0x4ee739ce72a);
        perform(0x4ee739d6752);
        perform(0x2f6357c5f12);
        perform(0x2f6318d6352);
        perform(0x2f6358d634a);
        perform(0x2f6358ce332);
        perform(0x2f6357cdf32);
        perform(0x2f6338ce32a);
        perform(0x2f6338d6352);
        perform(0x1f5f57d5f4a);
        perform(0x1bdf57d5f4a);
        perform(0x2f6357c5f12);
        perform(0x2ee758c6312);
        perform(0x1ffffffffea);
        perform(0x1ffffec7b12);
        perform(0x1f5f37cdf2a);
        perform(0x1f5f37ddc1a | (regX << 5));
        perform(0x1f5f17c5f0a);
        perform(0x1f5f1705f3a | (regX << 15));
        perform(0x1f5ef7bdeea);
        perform(0x1f5ef7ddf3a);
        perform(0x1f5fb7edfaa);
        perform(0x1f5fb7bdf1a);
        perform(0x1f5f37cdf2a);
        perform(0x1f5f37d5fba);
        perform(0x1f5f17c5f0a);
        perform(0x1f5f17edf3a);
        perform(0x1f5ef7bdeea);
        perform(0x1f5ef7d5f3a);
        perform(0x1f5fb7edfaa);
        perform(0x1f5fb7bdf1a);
        perform(0x1fff9fe7f8a);
        perform(0x1fff9fffff2);
        perform(0x1fffbfeffaa);
        perform(0x1fffbfffff2);
        perform(0x1f8360d836a);
        perform(0x10037fe7f92);
        perform(0x1f8380e038a);
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f5f57d5f4a);
        perform(0x1f5f57ddc1a | (regY << 5));
        perform(0x1f5f37cdf2a);
        perform(0x1f5f37e5c1a | (regX << 5));
        perform(0x1f5c1705c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f5c17cdf5a | (regZ << 25));
        perform(0x1d0f43d0f4a);
        perform(0x1d0f43d8ffa);
        perform(0x1d0f23c8f2a);
        perform(0x1d0f23e0fda);
        perform(0x1d0f03c0f0a);
        perform(0x1d0f03e0ffa);
        perform(0x1d0ee3b8eea);
        perform(0x1d0ee3d8fda);
        perform(0x1d0fc3f0fca);
        perform(0x1d0fc3c8f5a);
        perform(0x1d0fe3f8fea);
        perform(0x1d0fe3b8f1a);
        perform(0x1fdf57d5f4a);
        perform(0x1fdf37cdf2a);
        perform(0x1bdf3feffb2);
        perform(0x1bdf57cdf32);
        perform(0x1fff37d5f52);
        perform(0x1fff5fcff32);
        perform(0x1def37d5f52);
        perform(0x1def5bcef32);
        perform(0x4ee737d5f52);
        perform(0x4ee759ce732);
        perform(0x2f6337d5f52);
        perform(0x2f6358ce332);
        perform(0x1fdf17c5f0a);
        perform(0x1fdf17edfb2);
        perform(0x1fdef7bdeea);
        perform(0x1fdef7edf5a);
        perform(0x1fded7b5eca);
        perform(0x1fded7c5f3a);
        perform(0x1fdfb7edfaa);
        perform(0x1fdfb7b5efa);
        perform(0x1fdf17c5f0a);
        perform(0x1fdf17edfb2);
        perform(0x1fdf37cdf2a);
        perform(0x1fdf37c5f12);
        perform(0x1fdef7bdeea);
        perform(0x1bdeb7adeaa);
        perform(0x1bdebfd7f52);
        perform(0x1bded7b5eca);
        perform(0x1bded7adf1a);
        perform(0x1bdef7b5ed2);
        perform(0x2fe738be2f2);
        perform(0x2fe6f9ce732);
        perform(0x2fe739ce72a);
        perform(0x2fe739c6712);
        perform(0x2fe738c6312);
        perform(0x2fe719c670a);
        perform(0x2fe719ce732);
        perform(0x4fef39be6f2);
        perform(0x4feefbcef32);
        perform(0x4fef3bcef2a);
        perform(0x4fef3bc6f12);
        perform(0x4fef39c6712);
        perform(0x4fef1bc6f0a);
        perform(0x4fef1bcef32);
        perform(0x1fff3bbeef2);
        perform(0x1ffeffcff32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fc7f12);
        perform(0x1fff3bc6f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff32);
        perform(0x1fff37bdef2);
        perform(0x1ffeffcff32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fc7f12);
        perform(0x1fff37c5f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff32);
        perform(0x1def37bdef2);
        perform(0x1deefbcef32);
        perform(0x1def3bcef2a);
        perform(0x1def3bc6f12);
        perform(0x1def37c5f12);
        perform(0x1def1bc6f0a);
        perform(0x1def1bcef32);
        perform(0x4ee737bdef2);
        perform(0x4ee6f9ce732);
        perform(0x4ee739ce72a);
        perform(0x4ee739c6712);
        perform(0x4ee737c5f12);
        perform(0x4ee719c670a);
        perform(0x4ee719ce732);
        perform(0x2f6337bdef2);
        perform(0x2f62f8ce332);
        perform(0x2f6338ce32a);
        perform(0x2f6338c6312);
        perform(0x2f6337c5f12);
        perform(0x2f6318c630a);
        perform(0x2f6318ce332);
        perform(0x1fdf37cdf2a);
        perform(0x1bdf37adeb2);
        perform(0x2f6337bdef2);
        perform(0x2fe738be2f2);
        perform(0x1fdf17c5f0a);
        perform(0x1fdf17edfb2);
        perform(0x1fdef7bdeea);
        perform(0x1fdef7cdf32);
        perform(0x1fded7b5eca);
        perform(0x1fded7cdfba);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7bdf1a);
        perform(0x1fdfb7edfaa);
        perform(0x1fdfb7adeda);
        perform(0x1f73fcff3ea);
        perform(0x1f73fcef3b2);
        perform(0x1f73dcf73ca);
        perform(0x1ef7ddff7f2);
        perform(0x1f7bfdf77d2);
        perform(0x1e73dcff3f2);
        perform(0x1f7bfcf73d2);
        perform(0x1e73bcef3aa);
        perform(0x1e73beffbf2);
        perform(0x118fdcef3b2);
        perform(0x1213dcef3b2);
        perform(0x1297dcef3b2);
        perform(0x131bdcef3b2);
        perform(0x139fdcef3b2);
        perform(0x1423dcef3b2);
        perform(0x14a7dcef3b2);
        perform(0x152bdcef3b2);
        perform(0x15afdcef3b2);
        perform(0x1633dcef3b2);
        perform(0x16b7dcef3b2);
        perform(0x173bdcef3b2);
        perform(0x17bfdcef3b2);
        perform(0x1843dcef3b2);
        perform(0x18c7dcef3b2);
        perform(0x194bdcef3b2);
        perform(0x19cfdcef3b2);
        perform(0x1a53dcef3b2);
        perform(0x1ad7dcef3b2);
        perform(0x1b5bdcef3b2);
        perform(0x1bdfdcef3b2);
        perform(0x1c63dcef3b2);
        perform(0x1ce7dcef3b2);
        perform(0x1d6bdcef3b2);
        perform(0x1103c0f03c2);
        perform(0x1087a1e87a2);
        perform(0x1d0741d074a);
        perform(0x1d0721c872a);
        perform(0x108737edfb2);
        perform(0x108741c8732);
        perform(0x18c721d0752);
        perform(0x18c751cc732);
        perform(0x10ca721d0752);
        perform(0x10ca749ca732);
        perform(0x8a9721d0752);
        perform(0x8a9745c9732);
        perform(0x4b8f21d0752);
        perform(0x4b8f43c8f32);
        perform(0x2d0b21d0752);
        perform(0x2d0b42c8b32);
        perform(0x1086e1b86ea);
        perform(0x1086e1f07d2);
        perform(0x1086c1b06ca);
        perform(0x108701c070a);
        perform(0x108701b86f2);
        perform(0x108701c8732);
        perform(0x1086e1b86ea);
        perform(0x1086e1c07ba);
        perform(0x1087a1e87aa);
        perform(0x1087a1b86f2);
        perform(0x1d0701c070a);
        perform(0x1d0701f07d2);
        perform(0x1c86e1b86ea);
        perform(0x1d6afabeae2);
        perform(0x2c86e2c0b12);
        perform(0x2c0ae3c0f12);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1c86fa);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1d07da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c1a86da);
        perform(0x1d0741d074a);
        perform(0x1d0721c872a);
        perform(0x108738ee3b2);
        perform(0x108741c8732);
        perform(0x18c721d0752);
        perform(0x18c751cc732);
        perform(0x10ca721d0752);
        perform(0x10ca749ca732);
        perform(0x8a9721d0752);
        perform(0x8a9745c9732);
        perform(0x4b8f21d0752);
        perform(0x4b8f43c8f32);
        perform(0x2d0b21d0752);
        perform(0x2d0b42c8b32);
        perform(0x1106e1b86ea);
        perform(0x1106e1f07d2);
        perform(0x1106c1b06ca);
        perform(0x1086c1b86f2);
        perform(0x110ae1b06d2);
        perform(0x108701c070a);
        perform(0x108702b8af2);
        perform(0x108701c8732);
        perform(0x1086e1b86ea);
        perform(0x1086e1c07ba);
        perform(0x1087a1e87aa);
        perform(0x1087a1b86f2);
        perform(0x1d0701c070a);
        perform(0x1d0701f07d2);
        perform(0x1c06e1b86ea);
        perform(0x1d66f9be6e2);
        perform(0x3b06e3c0f12);
        perform(0x3b8ae4c1312);
        perform(0x3c0ee5c1712);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1c86fa);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1d07da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c1a86da);
        perform(0x1d0741d074a);
        perform(0x1d0721c872a);
        perform(0x108739ee7b2);
        perform(0x108741c8732);
        perform(0x18c721d0752);
        perform(0x18c751cc732);
        perform(0x10ca721d0752);
        perform(0x10ca749ca732);
        perform(0x8a9721d0752);
        perform(0x8a9745c9732);
        perform(0x4b8f21d0752);
        perform(0x4b8f43c8f32);
        perform(0x2d0b21d0752);
        perform(0x2d0b42c8b32);
        perform(0x1206e1b86ea);
        perform(0x1206e1f07d2);
        perform(0x1206c1b06ca);
        perform(0x2186c1b86f2);
        perform(0x220ae1b06d2);
        perform(0x110ac2b8af2);
        perform(0x1212e2b0ad2);
        perform(0x108701c070a);
        perform(0x108704b92f2);
        perform(0x108701c8732);
        perform(0x1086e1b86ea);
        perform(0x1086e1c07ba);
        perform(0x1087a1e87aa);
        perform(0x1087a1b86f2);
        perform(0x1d0701c070a);
        perform(0x1d0701f07d2);
        perform(0x1b06e1b86ea);
        perform(0x1d5ef7bdee2);
        perform(0x5a86e5c1712);
        perform(0x5b0ae6c1b12);
        perform(0x590ee7c1f12);
        perform(0x5992e8c2312);
        perform(0x5a16e9c2712);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1c86fa);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1d07da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c1a86da);
        perform(0x1d0741d074a);
        perform(0x1d0721c872a);
        perform(0x10873aeebb2);
        perform(0x108741c8732);
        perform(0x18c721d0752);
        perform(0x18c751cc732);
        perform(0x10ca721d0752);
        perform(0x10ca749ca732);
        perform(0x8a9721d0752);
        perform(0x8a9745c9732);
        perform(0x4b8f21d0752);
        perform(0x4b8f43c8f32);
        perform(0x2d0b21d0752);
        perform(0x2d0b42c8b32);
        perform(0x1406e1b86ea);
        perform(0x1406e1f07d2);
        perform(0x1406c1b06ca);
        perform(0x2386c1b86f2);
        perform(0x240ae1b06d2);
        perform(0x430ac2b8af2);
        perform(0x4412e2b0ad2);
        perform(0x1212c4b92f2);
        perform(0x1422e4b12d2);
        perform(0x108701c070a);
        perform(0x108708ba2f2);
        perform(0x108701c8732);
        perform(0x1086e1b86ea);
        perform(0x1086e1c07ba);
        perform(0x1087a1e87aa);
        perform(0x1087a1b86f2);
        perform(0x1d0701c070a);
        perform(0x1d0701f07d2);
        perform(0x1906e1b86ea);
        perform(0x1d4ef3bcee2);
        perform(0x9506e9c2712);
        perform(0x958aeac2b12);
        perform(0x960eebc2f12);
        perform(0x9692ecc3312);
        perform(0x9716edc3712);
        perform(0x979aeec3b12);
        perform(0x981eefc3f12);
        perform(0x98a2f0c4312);
        perform(0x9926f1c4712);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1c86fa);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1d07da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c1a86da);
        perform(0x1d0741d074a);
        perform(0x1d0721c872a);
        perform(0x10873beefb2);
        perform(0x108741c8732);
        perform(0x18c721d0752);
        perform(0x18c751cc732);
        perform(0x10ca721d0752);
        perform(0x10ca749ca732);
        perform(0x8a9721d0752);
        perform(0x8a9745c9732);
        perform(0x4b8f21d0752);
        perform(0x4b8f43c8f32);
        perform(0x2d0b21d0752);
        perform(0x2d0b42c8b32);
        perform(0x1806e1b86ea);
        perform(0x1806e1f07d2);
        perform(0x1806c1b06ca);
        perform(0x2786c1b86f2);
        perform(0x280ae1b06d2);
        perform(0x470ac2b8af2);
        perform(0x4812e2b0ad2);
        perform(0x8612c4b92f2);
        perform(0x8822e4b12d2);
        perform(0x1422c8ba2f2);
        perform(0x1842e8b22d2);
        perform(0x108701c070a);
        perform(0x108710bc2f2);
        perform(0x108701c8732);
        perform(0x1086e1b86ea);
        perform(0x1086e1c07ba);
        perform(0x1087a1e87aa);
        perform(0x1087a1b86f2);
        perform(0x1d0701c070a);
        perform(0x1d0701f07d2);
        perform(0x1506e1b86ea);
        perform(0x1d2eebbaee2);
        perform(0x1086f1c4712);
        perform(0x110af2c4b12);
        perform(0x118ef3c4f12);
        perform(0x1212f4c5312);
        perform(0x1296f5c5712);
        perform(0x131af6c5b12);
        perform(0x139ef7c5f12);
        perform(0x1422f8c6312);
        perform(0x14a6f9c6712);
        perform(0x152afac6b12);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1c86fa);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1d07da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c1a86da);
        perform(0x108741d074a);
        perform(0x108740f03d2);
        perform(0x108721c872a);
        perform(0x108721d0752);
        perform(0x108741d074a);
        perform(0x108741c87ba);
        perform(0x1003c0f03ca);
        perform(0x1003c1d0752);
        perform(0x1f83a0e83aa);
        perform(0x1f8340d034a);
        perform(0x1ffffffffea);
        perform(0x1fffff07c12 | (regX << 5) | (regX << 15));
        perform(0x1fffdff7fca);
        perform(0x1fffdf07c12 | (regY << 5) | (regY << 15));
        perform(0x1fff3fcff2a);
        perform(0x1fff3f07c1a | (regX << 5) | (regY << 15));
        perform(0x1fff1fc7f0a);
        perform(0x1fff1ff7ffa);
        perform(0x1fffbfeffaa);
        perform(0x1fffbfc7f3a);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5feffb2);
        perform(0x10035feffb2);
        perform(0x1003bfd7f52);
        perform(0x184340e83b2);
        perform(0x1843b0d4352);
        perform(0x10c2340e83b2);
        perform(0x10c23a8d2352);
        perform(0x8e1340e83b2);
        perform(0x8e13a4d1352);
        perform(0x4f0b40e83b2);
        perform(0x4f0ba2d0b52);
        perform(0x2f8740e83b2);
        perform(0x2f87a1d0752);
        perform(0x1103e0f83e2);
        perform(0x1d0300c030a);
        perform(0x1d0300f03d2);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0e83b2);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0e83da);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0b831a);
        perform(0x1d03c0f03ca);
        perform(0x1d03c0a82da);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0f03fa);
        perform(0x1d0300c030a);
        perform(0x1d0300b82f2);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0f83f2);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0f03d2);
        perform(0x1d0280a028a);
        perform(0x1d0280a82da);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0a0292);
        perform(0x1002a0a82aa);
        perform(0x1002bfeffb2);
        perform(0x100320c832a);
        perform(0x100320a82fa);
        perform(0x1002c0c8332);
        perform(0x2d0b01b06d2);
        perform(0x2d0ac2c0b12);
        perform(0x2d0b02c0b0a);
        perform(0x2d0b02b8af2);
        perform(0x2d0b01b86f2);
        perform(0x2d0ae2b8aea);
        perform(0x2d0ae2c0b12);
        perform(0x4c1302b0ad2);
        perform(0x4c12c4c1312);
        perform(0x4c1304c130a);
        perform(0x4c1304b92f2);
        perform(0x4c1302b8af2);
        perform(0x4c12e4b92ea);
        perform(0x4c12e4c1312);
        perform(0x8c2304b12d2);
        perform(0x8c22c8c2312);
        perform(0x8c2308c230a);
        perform(0x8c2308ba2f2);
        perform(0x8c2304b92f2);
        perform(0x8c22e8ba2ea);
        perform(0x8c22e8c2312);
        perform(0x184308b22d2);
        perform(0x1842d0c4312);
        perform(0x184310c430a);
        perform(0x184310bc2f2);
        perform(0x184308ba2f2);
        perform(0x1842f0bc2ea);
        perform(0x1842f0c4312);
        perform(0x184300b02d2);
        perform(0x1842d0c4312);
        perform(0x184310c430a);
        perform(0x184310bc2f2);
        perform(0x184300b82f2);
        perform(0x1842f0bc2ea);
        perform(0x1842f0c4312);
        perform(0x10c2300b02d2);
        perform(0x10c22c8c2312);
        perform(0x10c2308c230a);
        perform(0x10c2308ba2f2);
        perform(0x10c2300b82f2);
        perform(0x10c22e8ba2ea);
        perform(0x10c22e8c2312);
        perform(0x8a1300b02d2);
        perform(0x8a12c4c1312);
        perform(0x8a1304c130a);
        perform(0x8a1304b92f2);
        perform(0x8a1300b82f2);
        perform(0x8a12e4b92ea);
        perform(0x8a12e4c1312);
        perform(0x4d0b00b02d2);
        perform(0x4d0ac2c0b12);
        perform(0x4d0b02c0b0a);
        perform(0x4d0b02b8af2);
        perform(0x4d0b00b82f2);
        perform(0x4d0ae2b8aea);
        perform(0x4d0ae2c0b12);
        perform(0x2c8700b02d2);
        perform(0x2c86c1c0712);
        perform(0x2c8701c070a);
        perform(0x2c8701b86f2);
        perform(0x2c8700b82f2);
        perform(0x2c86e1b86ea);
        perform(0x2c86e1c0712);
        perform(0x1d0300c030a);
        perform(0x100300a82b2);
        perform(0x2c8700b02d2);
        perform(0x2d0b01b06d2);
        perform(0x1bdf37cdf2a);
        perform(0x1bdf3ab6ad2);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0f03fa);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0f82fa);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0f02fa);
        perform(0x1d03e0f83ea);
        perform(0x1d03e0a82da);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0c03fa);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0f82fa);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0c02fa);
        perform(0x1d03e0f83ea);
        perform(0x1d03e0a82da);
        perform(0x1ffffffffea);
        perform(0x1fffffd7f52);
        perform(0x1f83c0f03ca);
        perform(0x1003d7cdf5a);
        perform(0x1f83a0e83aa);
        perform(0x1003a0f03d2);
        perform(0x1843a0f03d2);
        perform(0x1843d0ec3b2);
        perform(0x10c23a0f03d2);
        perform(0x10c23c8ea3b2);
        perform(0x8e13a0f03d2);
        perform(0x8e13c4e93b2);
        perform(0x4f0ba0f03d2);
        perform(0x4f0bc2e8bb2);
        perform(0x2f87a0f03d2);
        perform(0x2f87c1e87b2);
        perform(0x1d0340d034a);
        perform(0x1d0340f83f2);
        perform(0x1d0300c030a);
        perform(0x1d0300f03d2);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0f03fa);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0c035a);
        perform(0x1d03e0f83ea);
        perform(0x1d03e0b02fa);
        perform(0x1d0300c030a);
        perform(0x1d0300f83f2);
        perform(0x1d0340d034a);
        perform(0x1d0340c0312);
        perform(0x1d02e0b82ea);
        perform(0x1002c0b02ca);
        perform(0x1002dff7fd2);
        perform(0x100320c832a);
        perform(0x100320b031a);
        perform(0x1002e0c8332);
        perform(0x2d0b41b86f2);
        perform(0x2d0ae2d0b52);
        perform(0x2d0b42d0b4a);
        perform(0x2d0b42c0b12);
        perform(0x2d0b41c0712);
        perform(0x2d0b02c0b0a);
        perform(0x2d0b02d0b52);
        perform(0x4c1342b8af2);
        perform(0x4c12e4d1352);
        perform(0x4c1344d134a);
        perform(0x4c1344c1312);
        perform(0x4c1342c0b12);
        perform(0x4c1304c130a);
        perform(0x4c1304d1352);
        perform(0x8c2344b92f2);
        perform(0x8c22e8d2352);
        perform(0x8c2348d234a);
        perform(0x8c2348c2312);
        perform(0x8c2344c1312);
        perform(0x8c2308c230a);
        perform(0x8c2308d2352);
        perform(0x184348ba2f2);
        perform(0x1842f0d4352);
        perform(0x184350d434a);
        perform(0x184350c4312);
        perform(0x184348c2312);
        perform(0x184310c430a);
        perform(0x184310d4352);
        perform(0x184340b82f2);
        perform(0x1842f0d4352);
        perform(0x184350d434a);
        perform(0x184350c4312);
        perform(0x184340c0312);
        perform(0x184310c430a);
        perform(0x184310d4352);
        perform(0x10c2340b82f2);
        perform(0x10c22e8d2352);
        perform(0x10c2348d234a);
        perform(0x10c2348c2312);
        perform(0x10c2340c0312);
        perform(0x10c2308c230a);
        perform(0x10c2308d2352);
        perform(0x8a1340b82f2);
        perform(0x8a12e4d1352);
        perform(0x8a1344d134a);
        perform(0x8a1344c1312);
        perform(0x8a1340c0312);
        perform(0x8a1304c130a);
        perform(0x8a1304d1352);
        perform(0x4d0b40b82f2);
        perform(0x4d0ae2d0b52);
        perform(0x4d0b42d0b4a);
        perform(0x4d0b42c0b12);
        perform(0x4d0b40c0312);
        perform(0x4d0b02c0b0a);
        perform(0x4d0b02d0b52);
        perform(0x2c8740b82f2);
        perform(0x2c86e1d0752);
        perform(0x2c8741d074a);
        perform(0x2c8741c0712);
        perform(0x2c8740c0312);
        perform(0x2c8701c070a);
        perform(0x2c8701d0752);
        perform(0x1d0340d034a);
        perform(0x100340b02d2);
        perform(0x2c8740b82f2);
        perform(0x2d0b41b86f2);
        perform(0x1d0300c030a);
        perform(0x1d0300f83f2);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0d0352);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0d03fa);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0b831a);
        perform(0x1d03e0f83ea);
        perform(0x1d03e0a82da);
        perform(0x1fffdff7fca);
        perform(0x1fffdfeffb2);
        perform(0x1bdf3fffff2);
        perform(0x1087c1f07c2);
        perform(0x1d07a1e87aa);
        perform(0x1d0741d074a);
        perform(0x108757cdf32);
        perform(0x1087a1d0752);
        perform(0x18c741e87b2);
        perform(0x18c7b1d4752);
        perform(0x10ca741e87b2);
        perform(0x10ca7a9d2752);
        perform(0x8a9741e87b2);
        perform(0x8a97a5d1752);
        perform(0x4b8f41e87b2);
        perform(0x4b8fa3d0f52);
        perform(0x2d0b41e87b2);
        perform(0x2d0ba2d0b52);
        perform(0x108701c070a);
        perform(0x108701f87f2);
        perform(0x1086e1b86ea);
        perform(0x108721c872a);
        perform(0x108721c0712);
        perform(0x108721d0752);
        perform(0x108701c070a);
        perform(0x108701c87da);
        perform(0x1087c1f07ca);
        perform(0x1087c1c0712);
        perform(0x1d0701c070a);
        perform(0x1d0701f87f2);
        perform(0x1c86e1b86ea);
        perform(0x1d6afabeae2);
        perform(0x2c86e2c0b12);
        perform(0x2c0ae3c0f12);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1d06fa);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1e87fa);
        perform(0x1d07e1f87ea);
        perform(0x1d07e1a86da);
        perform(0x1087a1e87aa);
        perform(0x1087a0f83f2);
        perform(0x108741d074a);
        perform(0x108741e87b2);
        perform(0x1087a1e87aa);
        perform(0x1087a1d07da);
        perform(0x1003e0f83ea);
        perform(0x1003e1e87b2);
        perform(0x1d6bdaf6bca);
        perform(0x1d6bd7cdf32);
        perform(0x1d6bbaeebaa);
        perform(0x1d6bbaf6bd2);
        perform(0x1d6b5ad6b4a);
        perform(0x1d6b5afebba);
        perform(0x1d6bfafebea);
        perform(0x1d6bfad6b52);
        perform(0x1fdf57d5f4a);
        perform(0x1f5f5705c12 | (regZ << 5) | (regZ << 15));
        perform(0x1fdfb7edfaa);
        perform(0x1fdfb7d5f52);
        perform(0x1fdf57d5f42);
        perform(0x1d07c1f07ca);
        perform(0x1d0701c070a);
        perform(0x1d2eebbaeea);
        perform(0x1d2eebfaff2);
        perform(0x1d2ecbb2eca);
        perform(0x2d32ccbb2f2);
        perform(0x2caeecb32d2);
        perform(0x4cb6cdbb6f2);
        perform(0x4baeedb36d2);
        perform(0x8bbecfbbef2);
        perform(0x89aeefb3ed2);
        perform(0x19ced3bcef2);
        perform(0x15aef3b4ed2);
        perform(0x1d6b1ac6b0a);
        perform(0x1d6b0bbaef2);
        perform(0x1d6bdac6b12);
        perform(0x152b1af6bd2);
        perform(0x152bcac2b12);
        perform(0x1090b0af2bd2);
        perform(0x1090bc2c0b12);
        perform(0x8b1b0af2bd2);
        perform(0x8b1bc6c1b12);
        perform(0x4c1306f1bd2);
        perform(0x4c13c4c1312);
        perform(0x2c8702f0bd2);
        perform(0x2c87c1c0712);
        perform(0x1def5bd6f4a);
        perform(0x1def5ac6b12);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1f87f2);
        perform(0x1d46d1b46ca);
        perform(0x1806c1b06c2);
        perform(0x1d6acabaaf2);
        perform(0x1ce6c9ba6f2);
        perform(0x1c62c8ba2f2);
        perform(0x1bdec7b9ef2);
        perform(0x1b5ac6b9af2);
        perform(0x1ad6c5b96f2);
        perform(0x1a52c4b92f2);
        perform(0x19cec3b8ef2);
        perform(0x194ac2b8af2);
        perform(0x18c6c1b86f2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681f07fa);
        perform(0x1d07e1f87ea);
        perform(0x1d07e1a06ba);
        perform(0x1d07c1f07ca);
        perform(0x1d0701c070a);
        perform(0x1d4ef3bceea);
        perform(0x1d4ef3fcff2);
        perform(0x1d4ed3b4eca);
        perform(0x2d52d4bd2f2);
        perform(0x2ccef4b52d2);
        perform(0x4cd6d5bd6f2);
        perform(0x4bcef5b56d2);
        perform(0x1bded7bdef2);
        perform(0x19cef7b5ed2);
        perform(0x1d6b1ac6b0a);
        perform(0x1d6b13bcef2);
        perform(0x1d6bdac6b12);
        perform(0x152b1af6bd2);
        perform(0x152bcac2b12);
        perform(0x1090b0af2bd2);
        perform(0x1090bc2c0b12);
        perform(0x8b1b0af2bd2);
        perform(0x8b1bc6c1b12);
        perform(0x4c1306f1bd2);
        perform(0x4c13c4c1312);
        perform(0x2c8702f0bd2);
        perform(0x2c87c1c0712);
        perform(0x1d6b5ad6b4a);
        perform(0x1d6b5ac6b12);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1f87f2);
        perform(0x1d26c9b26ca);
        perform(0x1406c1b06c2);
        perform(0x9d46c9ba6f2);
        perform(0x9cc2c8ba2f2);
        perform(0x9c3ec7b9ef2);
        perform(0x9bbac6b9af2);
        perform(0x9b36c5b96f2);
        perform(0x9ab2c4b92f2);
        perform(0x9a2ec3b8ef2);
        perform(0x99aac2b8af2);
        perform(0x9926c1b86f2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681f07fa);
        perform(0x1d07e1f87ea);
        perform(0x1d07e1a06ba);
        perform(0x1d07c1f07ca);
        perform(0x1d0701c070a);
        perform(0x1d5ef7bdeea);
        perform(0x1d5ef7fdff2);
        perform(0x1d5ed7b5eca);
        perform(0x2d62d8be2f2);
        perform(0x2cdef8b62d2);
        perform(0x1ce6d9be6f2);
        perform(0x1bdef9b66d2);
        perform(0x1d6b1ac6b0a);
        perform(0x1d6b17bdef2);
        perform(0x1d6bdac6b12);
        perform(0x152b1af6bd2);
        perform(0x152bcac2b12);
        perform(0x1090b0af2bd2);
        perform(0x1090bc2c0b12);
        perform(0x8b1b0af2bd2);
        perform(0x8b1bc6c1b12);
        perform(0x4c1306f1bd2);
        perform(0x4c13c4c1312);
        perform(0x2c8702f0bd2);
        perform(0x2c87c1c0712);
        perform(0x1ce759d674a);
        perform(0x1ce75ac6b12);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1f87f2);
        perform(0x1d16c5b16ca);
        perform(0x1206c1b06c2);
        perform(0x5d1ac2b8af2);
        perform(0x5c96c1b86f2);
        perform(0x5c26c5b96f2);
        perform(0x5ba2c4b92f2);
        perform(0x5b1ec3b8ef2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681f07fa);
        perform(0x1d07e1f87ea);
        perform(0x1d07e1a06ba);
        perform(0x1d07c1f07ca);
        perform(0x1d0701c070a);
        perform(0x1d6739ce72a);
        perform(0x1d6739fe7f2);
        perform(0x1d66f9be6ea);
        perform(0x1d6afaceb32);
        perform(0x1ce73abeaf2);
        perform(0x1d6b1ac6b0a);
        perform(0x1d6b19ce732);
        perform(0x1d6bdac6b12);
        perform(0x152b1af6bd2);
        perform(0x152bcac2b12);
        perform(0x1090b0af2bd2);
        perform(0x1090bc2c0b12);
        perform(0x8b1b0af2bd2);
        perform(0x8b1bc6c1b12);
        perform(0x4c1306f1bd2);
        perform(0x4c13c4c1312);
        perform(0x2c8702f0bd2);
        perform(0x2c87c1c0712);
        perform(0x1c6358d634a);
        perform(0x1c635ac6b12);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1f87f2);
        perform(0x1d0ec3b0eca);
        perform(0x1106c1b06c2);
        perform(0x3d16c3b8ef2);
        perform(0x3c92c2b8af2);
        perform(0x3c0ec1b86f2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681f07fa);
        perform(0x1d07e1f87ea);
        perform(0x1d07e1a06ba);
        perform(0x1d07c1f07ca);
        perform(0x1d0701c070a);
        perform(0x1d6b3aceb2a);
        perform(0x1d6b3afebf2);
        perform(0x1d6afabeaea);
        perform(0x1d6b1ac6b0a);
        perform(0x1d6b1aceb32);
        perform(0x1d6bdac6b12);
        perform(0x152b1af6bd2);
        perform(0x152bcac2b12);
        perform(0x1090b0af2bd2);
        perform(0x1090bc2c0b12);
        perform(0x8b1b0af2bd2);
        perform(0x8b1bc6c1b12);
        perform(0x4c1306f1bd2);
        perform(0x4c13c4c1312);
        perform(0x2c8702f0bd2);
        perform(0x2c87c1c0712);
        perform(0x1bdf57d5f4a);
        perform(0x1bdf5ac6b12);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1f87f2);
        perform(0x1d0ac2b0aca);
        perform(0x1086c1b06c2);
        perform(0x2d0ac1b86f2);
        perform(0x2c8ec2b8af2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681f07fa);
        perform(0x1d07e1f87ea);
        perform(0x1d07e1a06ba);
        perform(0x1d6bdaf6bca);
        perform(0x1d6bdafebf2);
        perform(0x1bdf5af6bd2);
        perform(0x1c635af6bd2);
        perform(0x1ce75af6bd2);
        perform(0x1d6b5af6bd2);
        perform(0x1def5af6bd2);
        perform(0x1fdf17c5f0a);
        perform(0x1fdf17d5f52);
        perform(0x1fded7b5eca);
        perform(0x1fded7c5fba);
        perform(0x1fdef7bdeea);
        perform(0x1fdef7b5ed2);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7edfb2);
        perform(0x1fde97a5e8a);
        perform(0x1fde97c5f12);
        perform(0x1fde779de6a);
        perform(0x1fde77a5eba);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb79de72);
        perform(0x1bdeb7bdef2);
        perform(0x2fe6f8ae2b2);
        perform(0x2fe6b9be6f2);
        perform(0x2fe6f9be6ea);
        perform(0x2fe6f9b66d2);
        perform(0x2fe6f8b62d2);
        perform(0x2fe6d9b66ca);
        perform(0x2fe6d9be6f2);
        perform(0x4feef9ae6b2);
        perform(0x4feebbbeef2);
        perform(0x4feefbbeeea);
        perform(0x4feefbb6ed2);
        perform(0x4feef9b66d2);
        perform(0x4feedbb6eca);
        perform(0x4feedbbeef2);
        perform(0x1ffefbaeeb2);
        perform(0x1ffebfbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffb7ed2);
        perform(0x1ffefbb6ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbfef2);
        perform(0x1ffef7adeb2);
        perform(0x1ffebfbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffb7ed2);
        perform(0x1ffef7b5ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbfef2);
        perform(0x1deef7adeb2);
        perform(0x1deebbbeef2);
        perform(0x1deefbbeeea);
        perform(0x1deefbb6ed2);
        perform(0x1deef7b5ed2);
        perform(0x1deedbb6eca);
        perform(0x1deedbbeef2);
        perform(0x4ee6f7adeb2);
        perform(0x4ee6b9be6f2);
        perform(0x4ee6f9be6ea);
        perform(0x4ee6f9b66d2);
        perform(0x4ee6f7b5ed2);
        perform(0x4ee6d9b66ca);
        perform(0x4ee6d9be6f2);
        perform(0x2f62f7adeb2);
        perform(0x2f62b8be2f2);
        perform(0x2f62f8be2ea);
        perform(0x2f62f8b62d2);
        perform(0x2f62f7b5ed2);
        perform(0x2f62d8b62ca);
        perform(0x2f62d8be2f2);
        perform(0x1fdef7bdeea);
        perform(0x1bdef7bdeea);
        perform(0x2f62f7adeb2);
        perform(0x2fe6f8ae2b2);
        perform(0x1fded7b5eca);
        perform(0x1fded7c5fba);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7ededa);
        perform(0x1fde97a5e8a);
        perform(0x1fde97c5eda);
        perform(0x1fdfb7edfaa);
        perform(0x1fdfb7a5eba);
        perform(0x1fded7b5eca);
        perform(0x1fded7bdfba);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7ededa);
        perform(0x1fde97a5e8a);
        perform(0x1fde97bdeda);
        perform(0x1fdfb7edfaa);
        perform(0x1fdfb7a5eba);
        perform(0x1003c0f03ca);
        perform(0x1003a0e83aa);
        perform(0x1003c1f87f2);
        perform(0x1003a0f03d2);
        perform(0x1003c0f03ca);
        perform(0x1003c0f83ba);
        perform(0x1003e0f83ea);
        perform(0x1003e0f03d2);
        perform(0x1103c0f03ca);
        perform(0x1003c3f8ff2);
        perform(0x1003a0e83aa);
        perform(0x1003a0f03d2);
        perform(0x110bc0e83fa);
        perform(0x110be2f0bd2);
        perform(0x1d0f03c0f0a);
        perform(0x1d0f03f8ff2);
        perform(0x1d0f43d0f4a);
        perform(0x1d0f43c0f12);
        perform(0x1d0ee3b8eea);
        perform(0x118fa3e8faa);
        perform(0x118fa2f8bf2);
        perform(0x118fc3f0fca);
        perform(0x118fc3e8f1a);
        perform(0x118ee3f0fd2);
        perform(0x2c9744b92f2);
        perform(0x2c96e5d1752);
        perform(0x2c9745d174a);
        perform(0x2c9745c1712);
        perform(0x2c9744c1312);
        perform(0x2c9705c170a);
        perform(0x2c9705d1752);
        perform(0x4b9f45b96f2);
        perform(0x4b9ee7d1f52);
        perform(0x4b9f47d1f4a);
        perform(0x4b9f47c1f12);
        perform(0x4b9f45c1712);
        perform(0x4b9f07c1f0a);
        perform(0x4b9f07d1f52);
        perform(0x89af47b9ef2);
        perform(0x89aeebd2f52);
        perform(0x89af4bd2f4a);
        perform(0x89af4bc2f12);
        perform(0x89af47c1f12);
        perform(0x89af0bc2f0a);
        perform(0x89af0bd2f52);
        perform(0x19cf4bbaef2);
        perform(0x19cef3d4f52);
        perform(0x19cf53d4f4a);
        perform(0x19cf53c4f12);
        perform(0x19cf4bc2f12);
        perform(0x19cf13c4f0a);
        perform(0x19cf13d4f52);
        perform(0x19cf43b8ef2);
        perform(0x19cef3d4f52);
        perform(0x19cf53d4f4a);
        perform(0x19cf53c4f12);
        perform(0x19cf43c0f12);
        perform(0x19cf13c4f0a);
        perform(0x19cf13d4f52);
        perform(0x15af43b8ef2);
        perform(0x15aeebd2f52);
        perform(0x15af4bd2f4a);
        perform(0x15af4bc2f12);
        perform(0x15af43c0f12);
        perform(0x15af0bc2f0a);
        perform(0x15af0bd2f52);
        perform(0x8b9f43b8ef2);
        perform(0x8b9ee7d1f52);
        perform(0x8b9f47d1f4a);
        perform(0x8b9f47c1f12);
        perform(0x8b9f43c0f12);
        perform(0x8b9f07c1f0a);
        perform(0x8b9f07d1f52);
        perform(0x4c9743b8ef2);
        perform(0x4c96e5d1752);
        perform(0x4c9745d174a);
        perform(0x4c9745c1712);
        perform(0x4c9743c0f12);
        perform(0x4c9705c170a);
        perform(0x4c9705d1752);
        perform(0x2d1343b8ef2);
        perform(0x2d12e4d1352);
        perform(0x2d1344d134a);
        perform(0x2d1344c1312);
        perform(0x2d1343c0f12);
        perform(0x2d1304c130a);
        perform(0x2d1304d1352);
        perform(0x1d0f43d0f4a);
        perform(0x118f43e8fb2);
        perform(0x2d1343b8ef2);
        perform(0x2c9744b92f2);
        perform(0x1bdfd7f5fca);
        perform(0x1bdfdabeaf2);
        perform(0x1d0f03c0f0a);
        perform(0x1d0f03f8ff2);
        perform(0x1d0ee3b8eea);
        perform(0x1d0ee3d0f52);
        perform(0x1d0ec3b0eca);
        perform(0x1d0ec3d0ffa);
        perform(0x1d0ea3a8eaa);
        perform(0x1d0ea3b8f1a);
        perform(0x1d0fe3f8fea);
        perform(0x1d0fe3a8eda);
        perform(0x1d6bdaf6bca);
        perform(0x1d6bd7f5fd2);
        perform(0x1d6b5ad6b4a);
        perform(0x1d6b5af6bd2);
        perform(0x1d6b3aceb2a);
        perform(0x1d6b3afeb5a);
        perform(0x1d6bfafebea);
        perform(0x1d6bfaceb32);
        perform(0x1bdf17c5f0a);
        perform(0x1bdf17f5f3a);
        perform(0x1bdef7bdeea);
        perform(0x1bdef7c5f3a);
        perform(0x1bded7b5eca);
        perform(0x1bded7c5fda);
        perform(0x1bdeb7adeaa);
        perform(0x1bdeb7b5efa);
        perform(0x1bdef7bdeea);
        perform(0x1bdef7edeba);
        perform(0x1bded7b5eca);
        perform(0x1bded7adefa);
        perform(0x1bdeb7adeaa);
        perform(0x1bdeb7edefa);
        perform(0x1bdfb7edfaa);
        perform(0x1bdfb7b5eba);
        perform(0x1bdf57d5f4a);
        perform(0x1bdf57bdf1a);
        perform(0x1fe338ce32a);
        perform(0x1fe338ee3b2);
        perform(0x1fe358d634a);
        perform(0x1fe358ce332);
        perform(0x1fe318c630a);
        perform(0x1c62f8be2ea);
        perform(0x1c62f7d5f52);
        perform(0x1c63d8f63ca);
        perform(0x1c63d8be33a);
        perform(0x1c6318f63d2);
        perform(0x2f6b59c6712);
        perform(0x2f6b1ad6b52);
        perform(0x2f6b5ad6b4a);
        perform(0x2f6b5aceb32);
        perform(0x2f6b59ce732);
        perform(0x2f6b3aceb2a);
        perform(0x2f6b3ad6b52);
        perform(0x1e735ac6b12);
        perform(0x1e731cd7352);
        perform(0x1e735cd734a);
        perform(0x1e735ccf332);
        perform(0x1e735aceb32);
        perform(0x1e733ccf32a);
        perform(0x1e733cd7352);
        perform(0x1e7358c6312);
        perform(0x1e731cd7352);
        perform(0x1e735cd734a);
        perform(0x1e735ccf332);
        perform(0x1e7358ce332);
        perform(0x1e733ccf32a);
        perform(0x1e733cd7352);
        perform(0x4f6b58c6312);
        perform(0x4f6b1ad6b52);
        perform(0x4f6b5ad6b4a);
        perform(0x4f6b5aceb32);
        perform(0x4f6b58ce332);
        perform(0x4f6b3aceb2a);
        perform(0x4f6b3ad6b52);
        perform(0x2fe758c6312);
        perform(0x2fe719d6752);
        perform(0x2fe759d674a);
        perform(0x2fe759ce732);
        perform(0x2fe758ce332);
        perform(0x2fe739ce72a);
        perform(0x2fe739d6752);
        perform(0x1fe358d634a);
        perform(0x1c6358be2f2);
        perform(0x2fe758c6312);
        perform(0x2f6b59c6712);
        perform(0x1fe338ce32a);
        perform(0x1fe338ee3b2);
        perform(0x1fe318c630a);
        perform(0x1fe318d6352);
        perform(0x1fe2f8be2ea);
        perform(0x1fe2f8d63ba);
        perform(0x1fe2d8b62ca);
        perform(0x1fe2d8c633a);
        perform(0x1fe3b8ee3aa);
        perform(0x1fe3b8b62fa);
        perform(0x1b00000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1b03c0f03ca);
        perform(0x4a03c3f8ff2);
        perform(0x4a87c4f93f2);
        perform(0x4b0bc5f97f2);
        perform(0x498fc6f9bf2);
        perform(0x1b0000f03d2 | (regZ << 25));
        perform(0x1f5fd7f5fca);
        perform(0x1f5fd7edfb2);
        perform(0x1f5c1705c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f5c17f5fd2 | (regZ << 25));
        perform(0x1fff3fcff2a);
        perform(0x1fff3f07c12 | (regY << 5) | (regY << 15));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fcfc1a | (regX << 5));
        perform(0x1fff3fcff2a);
        perform(0x1fff3fd7f52);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fe7f5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffdff3a);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fbff1a);
        perform(0x1fff3fcff2a);
        perform(0x1fff3ff7f5a);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fd7f3a);
        perform(0x1ffeffbfeea);
        perform(0x1ffefff7f3a);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fbff1a);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fffff2);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffffc1a | (regX << 5));
        perform(0x1ffc1f07c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1ffc1fbff1a | (regZ << 25));
        perform(0x1fffdff7fca);
        perform(0x1fffdafebf2);
        perform(0x1fff9fe7f8a);
        perform(0x1fff9ff7fba);
        perform(0x1ffffffffea);
        perform(0x1fffffe7f92);
        perform(0x1bdc1fffff2 | (regZ << 25));
        perform(0x1c601fffff2 | (regZ << 25));
        perform(0x1ce41fffff2 | (regZ << 25));
        perform(0x1d681fffff2 | (regZ << 25));
        perform(0x1dec1fffff2 | (regZ << 25));
        perform(0x1e701fffff2 | (regZ << 25));
        perform(0x1ef41fffff2 | (regZ << 25));
        perform(0x1f781fffff2 | (regZ << 25));
        perform(0x10001fffff2 | (regZ << 25));
        perform(0x10841fffff2 | (regZ << 25));
        perform(0x11081fffff2 | (regZ << 25));
        perform(0x118c1fffff2 | (regZ << 25));
        perform(0x12101fffff2 | (regZ << 25));
        perform(0x12941fffff2 | (regZ << 25));
        perform(0x13181fffff2 | (regZ << 25));
        perform(0x139c1fffff2 | (regZ << 25));
        perform(0x14201fffff2 | (regZ << 25));
        perform(0x14a41fffff2 | (regZ << 25));
        perform(0x15281fffff2 | (regZ << 25));
        perform(0x15ac1fffff2 | (regZ << 25));
        perform(0x16301fffff2 | (regZ << 25));
        perform(0x16b41fffff2 | (regZ << 25));
        perform(0x17381fffff2 | (regZ << 25));
        perform(0x17bc1fffff2 | (regZ << 25));
        perform(0x18401fffff2 | (regZ << 25));
        perform(0x18c41fffff2 | (regZ << 25));
        perform(0x19481fffff2 | (regZ << 25));
        perform(0x19cc1fffff2 | (regZ << 25));
        perform(0x1a501fffff2 | (regZ << 25));
        perform(0x1ad41fffff2 | (regZ << 25));
        perform(0x1b581fffff2 | (regZ << 25));
        perform(0x1ffc1fffff2 | (regZ << 25));
    }

    template <>
    void negate<int>(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f83e000012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0f83f2);
        perform(0x1f83c0f03ca);
        perform(0x1f83c0e83b2);
        perform(0x1f8380e038a);
        perform(0x100380f03d2);
        perform(0x2f0bc1e0792);
        perform(0x2f0b82f0bd2);
        perform(0x2f0bc2f0bca);
        perform(0x2f0bc2e8bb2);
        perform(0x2f0bc1e87b2);
        perform(0x2f0ba2e8baa);
        perform(0x2f0ba2f0bd2);
        perform(0x4e13c2e0b92);
        perform(0x4e1384f13d2);
        perform(0x4e13c4f13ca);
        perform(0x4e13c4e93b2);
        perform(0x4e13c2e8bb2);
        perform(0x4e13a4e93aa);
        perform(0x4e13a4f13d2);
        perform(0x8c23c4e1392);
        perform(0x8c2388f23d2);
        perform(0x8c23c8f23ca);
        perform(0x8c23c8ea3b2);
        perform(0x8c23c4e93b2);
        perform(0x8c23a8ea3aa);
        perform(0x8c23a8f23d2);
        perform(0x1843c8e2392);
        perform(0x184390f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0ec3b2);
        perform(0x1843c8ea3b2);
        perform(0x1843b0ec3aa);
        perform(0x1843b0f43d2);
        perform(0x1843c0e0392);
        perform(0x184390f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0ec3b2);
        perform(0x1843c0e83b2);
        perform(0x1843b0ec3aa);
        perform(0x1843b0f43d2);
        perform(0x10c23c0e0392);
        perform(0x10c2388f23d2);
        perform(0x10c23c8f23ca);
        perform(0x10c23c8ea3b2);
        perform(0x10c23c0e83b2);
        perform(0x10c23a8ea3aa);
        perform(0x10c23a8f23d2);
        perform(0x8e13c0e0392);
        perform(0x8e1384f13d2);
        perform(0x8e13c4f13ca);
        perform(0x8e13c4e93b2);
        perform(0x8e13c0e83b2);
        perform(0x8e13a4e93aa);
        perform(0x8e13a4f13d2);
        perform(0x4f0bc0e0392);
        perform(0x4f0b82f0bd2);
        perform(0x4f0bc2f0bca);
        perform(0x4f0bc2e8bb2);
        perform(0x4f0bc0e83b2);
        perform(0x4f0ba2e8baa);
        perform(0x4f0ba2f0bd2);
        perform(0x2f87c0e0392);
        perform(0x2f8781f07d2);
        perform(0x2f87c1f07ca);
        perform(0x2f87c1e87b2);
        perform(0x2f87c0e83b2);
        perform(0x2f87a1e87aa);
        perform(0x2f87a1f07d2);
        perform(0x1f83c0f03ca);
        perform(0x1003c0f03ca);
        perform(0x2f87c0e0392);
        perform(0x2f0bc1e0792);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0f83f2);
        perform(0x1f8380e038a);
        perform(0x1f8380f03d2);
        perform(0x1f8360d836a);
        perform(0x1f8360f03fa);
        perform(0x1f8340d034a);
        perform(0x1f8340e03ba);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d037a | (regZ << 25));
    }

    template <>
    void negate<float>(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03e000012 | (regX << 5) | (regX << 15));
        perform(0x1f0000f83f2 | (regZ << 25));
        perform(0x1ffc1f07c12 | (regX << 5) | (regX << 15) | (regZ << 25));
    }

    template <>
    void absolute<int>(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f83c0f03ca);
        perform(0x1003df07c12 | (regX << 5) | (regX << 15));
        perform(0x1003e0f03d2);
        perform(0x1843c0f83f2);
        perform(0x1843f0f43d2);
        perform(0x10c23c0f83f2);
        perform(0x10c23e8f23d2);
        perform(0x8e13c0f83f2);
        perform(0x8e13e4f13d2);
        perform(0x4f0bc0f83f2);
        perform(0x4f0be2f0bd2);
        perform(0x2f87c0f83f2);
        perform(0x2f87e1f07d2);
        perform(0x1f83a0e83aa);
        perform(0x1f83a000012 | (regX << 5) | (regX << 15));
        perform(0x1f8380e038a);
        perform(0x1f8380003fa | (regX << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d839a | (regZ << 25));
        perform(0x1f83a0e83aa);
        perform(0x1f83a000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f83c0f03ca);
        perform(0x1f83c0e83b2);
        perform(0x1f8380e038a);
        perform(0x100340d034a);
        perform(0x10035fffff2);
        perform(0x100360d836a);
        perform(0x100360d03ba);
        perform(0x100380d8372);
        perform(0x2f0bc1e0792);
        perform(0x2f0b82f0bd2);
        perform(0x2f0bc2f0bca);
        perform(0x2f0bc2e8bb2);
        perform(0x2f0bc1e87b2);
        perform(0x2f0ba2e8baa);
        perform(0x2f0ba2f0bd2);
        perform(0x4e13c2e0b92);
        perform(0x4e1384f13d2);
        perform(0x4e13c4f13ca);
        perform(0x4e13c4e93b2);
        perform(0x4e13c2e8bb2);
        perform(0x4e13a4e93aa);
        perform(0x4e13a4f13d2);
        perform(0x8c23c4e1392);
        perform(0x8c2388f23d2);
        perform(0x8c23c8f23ca);
        perform(0x8c23c8ea3b2);
        perform(0x8c23c4e93b2);
        perform(0x8c23a8ea3aa);
        perform(0x8c23a8f23d2);
        perform(0x1843c8e2392);
        perform(0x184390f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0ec3b2);
        perform(0x1843c8ea3b2);
        perform(0x1843b0ec3aa);
        perform(0x1843b0f43d2);
        perform(0x1843c0e0392);
        perform(0x184390f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0ec3b2);
        perform(0x1843c0e83b2);
        perform(0x1843b0ec3aa);
        perform(0x1843b0f43d2);
        perform(0x10c23c0e0392);
        perform(0x10c2388f23d2);
        perform(0x10c23c8f23ca);
        perform(0x10c23c8ea3b2);
        perform(0x10c23c0e83b2);
        perform(0x10c23a8ea3aa);
        perform(0x10c23a8f23d2);
        perform(0x8e13c0e0392);
        perform(0x8e1384f13d2);
        perform(0x8e13c4f13ca);
        perform(0x8e13c4e93b2);
        perform(0x8e13c0e83b2);
        perform(0x8e13a4e93aa);
        perform(0x8e13a4f13d2);
        perform(0x4f0bc0e0392);
        perform(0x4f0b82f0bd2);
        perform(0x4f0bc2f0bca);
        perform(0x4f0bc2e8bb2);
        perform(0x4f0bc0e83b2);
        perform(0x4f0ba2e8baa);
        perform(0x4f0ba2f0bd2);
        perform(0x2f87c0e0392);
        perform(0x2f8781f07d2);
        perform(0x2f87c1f07ca);
        perform(0x2f87c1e87b2);
        perform(0x2f87c0e83b2);
        perform(0x2f87a1e87aa);
        perform(0x2f87a1f07d2);
        perform(0x1f83c0f03ca);
        perform(0x1003c0d0352);
        perform(0x2f87c0e0392);
        perform(0x2f0bc1e0792);
        perform(0x1f83a0e83aa);
        perform(0x1f83a000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f8380e038a);
        perform(0x1f8380f03d2);
        perform(0x1f8360d836a);
        perform(0x1f8360f001a | (regZ << 5));
        perform(0x1f8340d034a);
        perform(0x1f8340e03ba);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d037a | (regZ << 25));
    }

    template <>
    void absolute<float>(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03e000012 | (regX << 5) | (regX << 15));
        perform(0x1f0000f83f2 | (regZ << 25));
        perform(0x1ffc1f07c02 | (regZ << 5) | (regZ << 15) | (regZ << 25));
    }

    template <>
    void subtract<int>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f83e000012 | (regY << 5) | (regY << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0f801a | (regX << 5));
        perform(0x1f83c0f03ca);
        perform(0x1f83c0e83b2);
        perform(0x1f8380e038a);
        perform(0x1f838000012 | (regX << 5) | (regX << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360f83f2);
        perform(0x1f8340d034a);
        perform(0x1f8340d839a);
        perform(0x1f8380e038a);
        perform(0x1f8380d0352);
        perform(0x100380f03d2);
        perform(0x2f0bc1e0792);
        perform(0x2f0b82f0bd2);
        perform(0x2f0bc2f0bca);
        perform(0x2f0bc2e8bb2);
        perform(0x2f0bc1e87b2);
        perform(0x2f0ba2e8baa);
        perform(0x2f0ba2f0bd2);
        perform(0x4e13c2e0b92);
        perform(0x4e1384f13d2);
        perform(0x4e13c4f13ca);
        perform(0x4e13c4e93b2);
        perform(0x4e13c2e8bb2);
        perform(0x4e13a4e93aa);
        perform(0x4e13a4f13d2);
        perform(0x8c23c4e1392);
        perform(0x8c2388f23d2);
        perform(0x8c23c8f23ca);
        perform(0x8c23c8ea3b2);
        perform(0x8c23c4e93b2);
        perform(0x8c23a8ea3aa);
        perform(0x8c23a8f23d2);
        perform(0x1843c8e2392);
        perform(0x184390f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0ec3b2);
        perform(0x1843c8ea3b2);
        perform(0x1843b0ec3aa);
        perform(0x1843b0f43d2);
        perform(0x1843c0e0392);
        perform(0x184390f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0ec3b2);
        perform(0x1843c0e83b2);
        perform(0x1843b0ec3aa);
        perform(0x1843b0f43d2);
        perform(0x10c23c0e0392);
        perform(0x10c2388f23d2);
        perform(0x10c23c8f23ca);
        perform(0x10c23c8ea3b2);
        perform(0x10c23c0e83b2);
        perform(0x10c23a8ea3aa);
        perform(0x10c23a8f23d2);
        perform(0x8e13c0e0392);
        perform(0x8e1384f13d2);
        perform(0x8e13c4f13ca);
        perform(0x8e13c4e93b2);
        perform(0x8e13c0e83b2);
        perform(0x8e13a4e93aa);
        perform(0x8e13a4f13d2);
        perform(0x4f0bc0e0392);
        perform(0x4f0b82f0bd2);
        perform(0x4f0bc2f0bca);
        perform(0x4f0bc2e8bb2);
        perform(0x4f0bc0e83b2);
        perform(0x4f0ba2e8baa);
        perform(0x4f0ba2f0bd2);
        perform(0x2f87c0e0392);
        perform(0x2f8781f07d2);
        perform(0x2f87c1f07ca);
        perform(0x2f87c1e87b2);
        perform(0x2f87c0e83b2);
        perform(0x2f87a1e87aa);
        perform(0x2f87a1f07d2);
        perform(0x1f83c0f03ca);
        perform(0x1003c0f03ca);
        perform(0x2f87c0e0392);
        perform(0x2f0bc1e0792);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0f801a | (regX << 5));
        perform(0x1f8380e038a);
        perform(0x1f8380003ba | (regX << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360f83ba);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d839a | (regZ << 25));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0f001a | (regZ << 5));
        perform(0x1f8380e038a);
        perform(0x1f8380003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360f03ba);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d839a | (regZ << 25));
    }

    template <>
    void subtract<float>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83c0f03ca);
        perform(0x1f83e0f83ea);
        perform(0x1f03c000012 | (regY << 5) | (regY << 15));
        perform(0x1f03e0f03d2);
        perform(0x1fffff07c12 | (regY << 5) | (regY << 15));
        perform(0x1d03c0f03ca);
        perform(0x1d03a0e83aa);
        perform(0x4b8fa000012 | (regX << 5) | (regX << 15));
        perform(0x4c13a100412 | (regX << 5) | (regX << 15));
        perform(0x4c97a200812 | (regX << 5) | (regX << 15));
        perform(0x4b1ba300c12 | (regX << 5) | (regX << 15));
        perform(0x1c8fc3e8fb2);
        perform(0x1f5fb7edfaa);
        perform(0x1f5fb705c12 | (regX << 5) | (regX << 15));
        perform(0x1f5f97e5f8a);
        perform(0x2edf97edfb2);
        perform(0x2f63b7e5f92);
        perform(0x4e6398ee3b2);
        perform(0x4f6bb8e6392);
        perform(0x1d6b9aeebb2);
        perform(0x1f7bbae6b92);
        perform(0x1d6bdaf6bca);
        perform(0x1d6bdeefbb2);
        perform(0x1d03a0e83aa);
        perform(0x1d0380e038a);
        perform(0x4b8f80f83f2);
        perform(0x4c1381f87f2);
        perform(0x4c9782f8bf2);
        perform(0x4b1b83f8ff2);
        perform(0x1c8fa3e0f92);
        perform(0x1f5f97e5f8a);
        perform(0x1f5f97fdff2);
        perform(0x1f5f77ddf6a);
        perform(0x2edf77e5f92);
        perform(0x2f6397ddf72);
        perform(0x4e6378e6392);
        perform(0x4f6b98de372);
        perform(0x1d6b7ae6b92);
        perform(0x1f7b9adeb72);
        perform(0x1d6bbaeebaa);
        perform(0x1d6bbee7b92);
        perform(0x1f5f57d5f4a);
        perform(0x1f5f57fdff2);
        perform(0x1f5f17c5f0a);
        perform(0x1f5f17d5c1a | (regX << 5));
        perform(0x1f5f37cdf2a);
        perform(0x1f5f37c5f12);
        perform(0x1f5ef7bdeea);
        perform(0x1f5ef705c12 | (regX << 5) | (regX << 15));
        perform(0x1f5ed7b5eca);
        perform(0x1f5ed7d5f52);
        perform(0x1f5eb7adeaa);
        perform(0x1f5eb7b5efa);
        perform(0x1f5ef7bdeea);
        perform(0x1f5ef7adeb2);
        perform(0x1bdef7cdf32);
        perform(0x2ee738be2f2);
        perform(0x2ee6f9ce732);
        perform(0x2ee739ce72a);
        perform(0x2ee739c6712);
        perform(0x2ee738c6312);
        perform(0x2ee719c670a);
        perform(0x2ee719ce732);
        perform(0x1def39be6f2);
        perform(0x1deefbcef32);
        perform(0x1def3bcef2a);
        perform(0x1def3bc6f12);
        perform(0x1def39c6712);
        perform(0x1def1bc6f0a);
        perform(0x1def1bcef32);
        perform(0x1def37bdef2);
        perform(0x1deefbcef32);
        perform(0x1def3bcef2a);
        perform(0x1def3bc6f12);
        perform(0x1def37c5f12);
        perform(0x1def1bc6f0a);
        perform(0x1def1bcef32);
        perform(0x4ee737bdef2);
        perform(0x4ee6f9ce732);
        perform(0x4ee739ce72a);
        perform(0x4ee739c6712);
        perform(0x4ee737c5f12);
        perform(0x4ee719c670a);
        perform(0x4ee719ce732);
        perform(0x2f6337bdef2);
        perform(0x2f62f8ce332);
        perform(0x2f6338ce32a);
        perform(0x2f6338c6312);
        perform(0x2f6337c5f12);
        perform(0x2f6318c630a);
        perform(0x2f6318ce332);
        perform(0x1f5f37cdf2a);
        perform(0x1bdf37cdf2a);
        perform(0x2f6337bdef2);
        perform(0x2ee738be2f2);
        perform(0x1fffdff7fca);
        perform(0x1fffdebfaf2);
        perform(0x1f5f17c5f0a);
        perform(0x1f5f17d5c1a | (regX << 5));
        perform(0x1f5ef7bdeea);
        perform(0x1f5ef705f1a | (regX << 15));
        perform(0x1f5ed7b5eca);
        perform(0x1f5ed7d5f1a);
        perform(0x1f5f97e5f8a);
        perform(0x1f5f97b5efa);
        perform(0x1f5f17c5f0a);
        perform(0x1f5f17cdf9a);
        perform(0x1f5ef7bdeea);
        perform(0x1f5ef7e5f1a);
        perform(0x1f5ed7b5eca);
        perform(0x1f5ed7cdf1a);
        perform(0x1f5f97e5f8a);
        perform(0x1f5f97b5efa);
        perform(0x1fff7fdff6a);
        perform(0x1fff7ff7fd2);
        perform(0x1fff9fe7f8a);
        perform(0x1fff9ff7fd2);
        perform(0x1f8340d034a);
        perform(0x10035fdff72);
        perform(0x1f8360d836a);
        perform(0x100360d0352);
        perform(0x184340d8372);
        perform(0x184370d4352);
        perform(0x10c2340d8372);
        perform(0x10c2368d2352);
        perform(0x8e1340d8372);
        perform(0x8e1364d1352);
        perform(0x4f0b40d8372);
        perform(0x4f0b62d0b52);
        perform(0x2f8740d8372);
        perform(0x2f8761d0752);
        perform(0x1f5f37cdf2a);
        perform(0x1f5f37d5ffa);
        perform(0x1f5f17c5f0a);
        perform(0x1f5f17ddc1a | (regX << 5));
        perform(0x1f5c1705c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f5c17c5f3a | (regZ << 25));
        perform(0x1d0f23c8f2a);
        perform(0x1d0f23d0fda);
        perform(0x1d0f03c0f0a);
        perform(0x1d0f03d8fba);
        perform(0x1d0ee3b8eea);
        perform(0x1d0ee3d8fda);
        perform(0x1d0ec3b0eca);
        perform(0x1d0ec3d0fba);
        perform(0x1d0fa3e8faa);
        perform(0x1d0fa3c0f3a);
        perform(0x1d0fc3f0fca);
        perform(0x1d0fc3b0efa);
        perform(0x1fdf37cdf2a);
        perform(0x1fdf17c5f0a);
        perform(0x1bdf1fe7f92);
        perform(0x1bdf37c5f12);
        perform(0x1fff17cdf32);
        perform(0x1fff3fc7f12);
        perform(0x1def17cdf32);
        perform(0x1def3bc6f12);
        perform(0x4ee717cdf32);
        perform(0x4ee739c6712);
        perform(0x2f6317cdf32);
        perform(0x2f6338c6312);
        perform(0x1fdef7bdeea);
        perform(0x1fdef7e5f92);
        perform(0x1fded7b5eca);
        perform(0x1fded7e5f3a);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7bdf1a);
        perform(0x1fdf97e5f8a);
        perform(0x1fdf97adeda);
        perform(0x1fdef7bdeea);
        perform(0x1fdef7e5f92);
        perform(0x1fdf17c5f0a);
        perform(0x1fdf17bdef2);
        perform(0x1fded7b5eca);
        perform(0x1bde97a5e8a);
        perform(0x1bde9fcff32);
        perform(0x1bdeb7adeaa);
        perform(0x1bdeb7a5efa);
        perform(0x1bded7adeb2);
        perform(0x2fe718b62d2);
        perform(0x2fe6d9c6712);
        perform(0x2fe719c670a);
        perform(0x2fe719be6f2);
        perform(0x2fe718be2f2);
        perform(0x2fe6f9be6ea);
        perform(0x2fe6f9c6712);
        perform(0x4fef19b66d2);
        perform(0x4feedbc6f12);
        perform(0x4fef1bc6f0a);
        perform(0x4fef1bbeef2);
        perform(0x4fef19be6f2);
        perform(0x4feefbbeeea);
        perform(0x4feefbc6f12);
        perform(0x1fff1bb6ed2);
        perform(0x1ffedfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fbfef2);
        perform(0x1fff1bbeef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f12);
        perform(0x1fff17b5ed2);
        perform(0x1ffedfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fbfef2);
        perform(0x1fff17bdef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f12);
        perform(0x1def17b5ed2);
        perform(0x1deedbc6f12);
        perform(0x1def1bc6f0a);
        perform(0x1def1bbeef2);
        perform(0x1def17bdef2);
        perform(0x1deefbbeeea);
        perform(0x1deefbc6f12);
        perform(0x4ee717b5ed2);
        perform(0x4ee6d9c6712);
        perform(0x4ee719c670a);
        perform(0x4ee719be6f2);
        perform(0x4ee717bdef2);
        perform(0x4ee6f9be6ea);
        perform(0x4ee6f9c6712);
        perform(0x2f6317b5ed2);
        perform(0x2f62d8c6312);
        perform(0x2f6318c630a);
        perform(0x2f6318be2f2);
        perform(0x2f6317bdef2);
        perform(0x2f62f8be2ea);
        perform(0x2f62f8c6312);
        perform(0x1fdf17c5f0a);
        perform(0x1bdf17a5e92);
        perform(0x2f6317b5ed2);
        perform(0x2fe718b62d2);
        perform(0x1fdef7bdeea);
        perform(0x1fdef7e5f92);
        perform(0x1fded7b5eca);
        perform(0x1fded7c5f12);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7c5f9a);
        perform(0x1fde97a5e8a);
        perform(0x1fde97b5efa);
        perform(0x1fdf97e5f8a);
        perform(0x1fdf97a5eba);
        perform(0x1f73dcf73ca);
        perform(0x1f73dce7392);
        perform(0x1f73bcef3aa);
        perform(0x1ef7bdf77d2);
        perform(0x1f7bddef7b2);
        perform(0x1e73bcf73d2);
        perform(0x1f7bdcef3b2);
        perform(0x1e739ce738a);
        perform(0x1e739ef7bd2);
        perform(0x118fbce7392);
        perform(0x1213bce7392);
        perform(0x1297bce7392);
        perform(0x131bbce7392);
        perform(0x139fbce7392);
        perform(0x1423bce7392);
        perform(0x14a7bce7392);
        perform(0x152bbce7392);
        perform(0x15afbce7392);
        perform(0x1633bce7392);
        perform(0x16b7bce7392);
        perform(0x173bbce7392);
        perform(0x17bfbce7392);
        perform(0x1843bce7392);
        perform(0x18c7bce7392);
        perform(0x194bbce7392);
        perform(0x19cfbce7392);
        perform(0x1a53bce7392);
        perform(0x1ad7bce7392);
        perform(0x1b5bbce7392);
        perform(0x1bdfbce7392);
        perform(0x1c63bce7392);
        perform(0x1ce7bce7392);
        perform(0x1d6bbce7392);
        perform(0x1103a0e83a2);
        perform(0x108781e0782);
        perform(0x1d0721c872a);
        perform(0x1d0701c070a);
        perform(0x108717e5f92);
        perform(0x108721c0712);
        perform(0x18c701c8732);
        perform(0x18c731c4712);
        perform(0x10ca701c8732);
        perform(0x10ca729c2712);
        perform(0x8a9701c8732);
        perform(0x8a9725c1712);
        perform(0x4b8f01c8732);
        perform(0x4b8f23c0f12);
        perform(0x2d0b01c8732);
        perform(0x2d0b22c0b12);
        perform(0x1086c1b06ca);
        perform(0x1086c1e87b2);
        perform(0x1086a1a86aa);
        perform(0x1086e1b86ea);
        perform(0x1086e1b06d2);
        perform(0x1086e1c0712);
        perform(0x1086c1b06ca);
        perform(0x1086c1b879a);
        perform(0x108781e078a);
        perform(0x108781b06d2);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1e87b2);
        perform(0x1c86c1b06ca);
        perform(0x1d6adab6ac2);
        perform(0x2c86c2b8af2);
        perform(0x2c0ac3b8ef2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681c87ba);
        perform(0x1d07a1e87aa);
        perform(0x1d07a1a06ba);
        perform(0x1d0721c872a);
        perform(0x1d0701c070a);
        perform(0x108718e6392);
        perform(0x108721c0712);
        perform(0x18c701c8732);
        perform(0x18c731c4712);
        perform(0x10ca701c8732);
        perform(0x10ca729c2712);
        perform(0x8a9701c8732);
        perform(0x8a9725c1712);
        perform(0x4b8f01c8732);
        perform(0x4b8f23c0f12);
        perform(0x2d0b01c8732);
        perform(0x2d0b22c0b12);
        perform(0x1106c1b06ca);
        perform(0x1106c1e87b2);
        perform(0x1106a1a86aa);
        perform(0x1086a1b06d2);
        perform(0x110ac1a86b2);
        perform(0x1086e1b86ea);
        perform(0x1086e2b0ad2);
        perform(0x1086e1c0712);
        perform(0x1086c1b06ca);
        perform(0x1086c1b879a);
        perform(0x108781e078a);
        perform(0x108781b06d2);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1e87b2);
        perform(0x1c06c1b06ca);
        perform(0x1d66d9b66c2);
        perform(0x3b06c3b8ef2);
        perform(0x3b8ac4b92f2);
        perform(0x3c0ec5b96f2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681c87ba);
        perform(0x1d07a1e87aa);
        perform(0x1d07a1a06ba);
        perform(0x1d0721c872a);
        perform(0x1d0701c070a);
        perform(0x108719e6792);
        perform(0x108721c0712);
        perform(0x18c701c8732);
        perform(0x18c731c4712);
        perform(0x10ca701c8732);
        perform(0x10ca729c2712);
        perform(0x8a9701c8732);
        perform(0x8a9725c1712);
        perform(0x4b8f01c8732);
        perform(0x4b8f23c0f12);
        perform(0x2d0b01c8732);
        perform(0x2d0b22c0b12);
        perform(0x1206c1b06ca);
        perform(0x1206c1e87b2);
        perform(0x1206a1a86aa);
        perform(0x2186a1b06d2);
        perform(0x220ac1a86b2);
        perform(0x110aa2b0ad2);
        perform(0x1212c2a8ab2);
        perform(0x1086e1b86ea);
        perform(0x1086e4b12d2);
        perform(0x1086e1c0712);
        perform(0x1086c1b06ca);
        perform(0x1086c1b879a);
        perform(0x108781e078a);
        perform(0x108781b06d2);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1e87b2);
        perform(0x1b06c1b06ca);
        perform(0x1d5ed7b5ec2);
        perform(0x5a86c5b96f2);
        perform(0x5b0ac6b9af2);
        perform(0x590ec7b9ef2);
        perform(0x5992c8ba2f2);
        perform(0x5a16c9ba6f2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681c87ba);
        perform(0x1d07a1e87aa);
        perform(0x1d07a1a06ba);
        perform(0x1d0721c872a);
        perform(0x1d0701c070a);
        perform(0x10871ae6b92);
        perform(0x108721c0712);
        perform(0x18c701c8732);
        perform(0x18c731c4712);
        perform(0x10ca701c8732);
        perform(0x10ca729c2712);
        perform(0x8a9701c8732);
        perform(0x8a9725c1712);
        perform(0x4b8f01c8732);
        perform(0x4b8f23c0f12);
        perform(0x2d0b01c8732);
        perform(0x2d0b22c0b12);
        perform(0x1406c1b06ca);
        perform(0x1406c1e87b2);
        perform(0x1406a1a86aa);
        perform(0x2386a1b06d2);
        perform(0x240ac1a86b2);
        perform(0x430aa2b0ad2);
        perform(0x4412c2a8ab2);
        perform(0x1212a4b12d2);
        perform(0x1422c4a92b2);
        perform(0x1086e1b86ea);
        perform(0x1086e8b22d2);
        perform(0x1086e1c0712);
        perform(0x1086c1b06ca);
        perform(0x1086c1b879a);
        perform(0x108781e078a);
        perform(0x108781b06d2);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1e87b2);
        perform(0x1906c1b06ca);
        perform(0x1d4ed3b4ec2);
        perform(0x9506c9ba6f2);
        perform(0x958acabaaf2);
        perform(0x960ecbbaef2);
        perform(0x9692ccbb2f2);
        perform(0x9716cdbb6f2);
        perform(0x979acebbaf2);
        perform(0x981ecfbbef2);
        perform(0x98a2d0bc2f2);
        perform(0x9926d1bc6f2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681c87ba);
        perform(0x1d07a1e87aa);
        perform(0x1d07a1a06ba);
        perform(0x1d0721c872a);
        perform(0x1d0701c070a);
        perform(0x10871be6f92);
        perform(0x108721c0712);
        perform(0x18c701c8732);
        perform(0x18c731c4712);
        perform(0x10ca701c8732);
        perform(0x10ca729c2712);
        perform(0x8a9701c8732);
        perform(0x8a9725c1712);
        perform(0x4b8f01c8732);
        perform(0x4b8f23c0f12);
        perform(0x2d0b01c8732);
        perform(0x2d0b22c0b12);
        perform(0x1806c1b06ca);
        perform(0x1806c1e87b2);
        perform(0x1806a1a86aa);
        perform(0x2786a1b06d2);
        perform(0x280ac1a86b2);
        perform(0x470aa2b0ad2);
        perform(0x4812c2a8ab2);
        perform(0x8612a4b12d2);
        perform(0x8822c4a92b2);
        perform(0x1422a8b22d2);
        perform(0x1842c8aa2b2);
        perform(0x1086e1b86ea);
        perform(0x1086f0b42d2);
        perform(0x1086e1c0712);
        perform(0x1086c1b06ca);
        perform(0x1086c1b879a);
        perform(0x108781e078a);
        perform(0x108781b06d2);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1e87b2);
        perform(0x1506c1b06ca);
        perform(0x1d2ecbb2ec2);
        perform(0x1086d1bc6f2);
        perform(0x110ad2bcaf2);
        perform(0x118ed3bcef2);
        perform(0x1212d4bd2f2);
        perform(0x1296d5bd6f2);
        perform(0x131ad6bdaf2);
        perform(0x139ed7bdef2);
        perform(0x1422d8be2f2);
        perform(0x14a6d9be6f2);
        perform(0x152adabeaf2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c06da);
        perform(0x1d0681a068a);
        perform(0x1d0681c87ba);
        perform(0x1d07a1e87aa);
        perform(0x1d07a1a06ba);
        perform(0x108721c872a);
        perform(0x108720e83b2);
        perform(0x108701c070a);
        perform(0x108701c8732);
        perform(0x108721c872a);
        perform(0x108721c079a);
        perform(0x1003a0e83aa);
        perform(0x1003a1c8732);
        perform(0x1f8380e038a);
        perform(0x1f8320c832a);
        perform(0x1fffdff7fca);
        perform(0x1fffdf07c12 | (regX << 5) | (regX << 15));
        perform(0x1fffbfeffaa);
        perform(0x1fffbfffff2);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fffc1a | (regX << 5));
        perform(0x1ffeffbfeea);
        perform(0x1ffeffeffda);
        perform(0x1fff9fe7f8a);
        perform(0x1fff9fbff1a);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fe7f92);
        perform(0x10033fe7f92);
        perform(0x10039fcff32);
        perform(0x184320e0392);
        perform(0x184390cc332);
        perform(0x10c2320e0392);
        perform(0x10c2388ca332);
        perform(0x8e1320e0392);
        perform(0x8e1384c9332);
        perform(0x4f0b20e0392);
        perform(0x4f0b82c8b32);
        perform(0x2f8720e0392);
        perform(0x2f8781c8732);
        perform(0x1103c0f03c2);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0e83b2);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0e0392);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0e03ba);
        perform(0x1d0280a028a);
        perform(0x1d0280b02fa);
        perform(0x1d03a0e83aa);
        perform(0x1d03a0a02ba);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0e83da);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0b02d2);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0f03d2);
        perform(0x1d0280a028a);
        perform(0x1d0280e83b2);
        perform(0x1d02609826a);
        perform(0x1d0260a02ba);
        perform(0x1d02a0a82aa);
        perform(0x1d02a098272);
        perform(0x100280a028a);
        perform(0x10029fe7f92);
        perform(0x100300c030a);
        perform(0x100300a02da);
        perform(0x1002a0c0312);
        perform(0x2d0ae1a86b2);
        perform(0x2d0aa2b8af2);
        perform(0x2d0ae2b8aea);
        perform(0x2d0ae2b0ad2);
        perform(0x2d0ae1b06d2);
        perform(0x2d0ac2b0aca);
        perform(0x2d0ac2b8af2);
        perform(0x4c12e2a8ab2);
        perform(0x4c12a4b92f2);
        perform(0x4c12e4b92ea);
        perform(0x4c12e4b12d2);
        perform(0x4c12e2b0ad2);
        perform(0x4c12c4b12ca);
        perform(0x4c12c4b92f2);
        perform(0x8c22e4a92b2);
        perform(0x8c22a8ba2f2);
        perform(0x8c22e8ba2ea);
        perform(0x8c22e8b22d2);
        perform(0x8c22e4b12d2);
        perform(0x8c22c8b22ca);
        perform(0x8c22c8ba2f2);
        perform(0x1842e8aa2b2);
        perform(0x1842b0bc2f2);
        perform(0x1842f0bc2ea);
        perform(0x1842f0b42d2);
        perform(0x1842e8b22d2);
        perform(0x1842d0b42ca);
        perform(0x1842d0bc2f2);
        perform(0x1842e0a82b2);
        perform(0x1842b0bc2f2);
        perform(0x1842f0bc2ea);
        perform(0x1842f0b42d2);
        perform(0x1842e0b02d2);
        perform(0x1842d0b42ca);
        perform(0x1842d0bc2f2);
        perform(0x10c22e0a82b2);
        perform(0x10c22a8ba2f2);
        perform(0x10c22e8ba2ea);
        perform(0x10c22e8b22d2);
        perform(0x10c22e0b02d2);
        perform(0x10c22c8b22ca);
        perform(0x10c22c8ba2f2);
        perform(0x8a12e0a82b2);
        perform(0x8a12a4b92f2);
        perform(0x8a12e4b92ea);
        perform(0x8a12e4b12d2);
        perform(0x8a12e0b02d2);
        perform(0x8a12c4b12ca);
        perform(0x8a12c4b92f2);
        perform(0x4d0ae0a82b2);
        perform(0x4d0aa2b8af2);
        perform(0x4d0ae2b8aea);
        perform(0x4d0ae2b0ad2);
        perform(0x4d0ae0b02d2);
        perform(0x4d0ac2b0aca);
        perform(0x4d0ac2b8af2);
        perform(0x2c86e0a82b2);
        perform(0x2c86a1b86f2);
        perform(0x2c86e1b86ea);
        perform(0x2c86e1b06d2);
        perform(0x2c86e0b02d2);
        perform(0x2c86c1b06ca);
        perform(0x2c86c1b86f2);
        perform(0x1d02e0b82ea);
        perform(0x1002e0a0292);
        perform(0x2c86e0a82b2);
        perform(0x2d0ae1a86b2);
        perform(0x1bdf17c5f0a);
        perform(0x1bdf1aaeab2);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0e83da);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0f02da);
        perform(0x1d0280a028a);
        perform(0x1d0280e82da);
        perform(0x1d03c0f03ca);
        perform(0x1d03c0a02ba);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0b83da);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0f02da);
        perform(0x1d0280a028a);
        perform(0x1d0280b82da);
        perform(0x1d03c0f03ca);
        perform(0x1d03c0a02ba);
        perform(0x1fffdff7fca);
        perform(0x1fffdfcff32);
        perform(0x1f83a0e83aa);
        perform(0x1003b7c5f3a);
        perform(0x1f8380e038a);
        perform(0x100380e83b2);
        perform(0x184380e83b2);
        perform(0x1843b0e4392);
        perform(0x10c2380e83b2);
        perform(0x10c23a8e2392);
        perform(0x8e1380e83b2);
        perform(0x8e13a4e1392);
        perform(0x4f0b80e83b2);
        perform(0x4f0ba2e0b92);
        perform(0x2f8780e83b2);
        perform(0x2f87a1e0792);
        perform(0x1d0320c832a);
        perform(0x1d0320f03d2);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0e83b2);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0e83da);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0b833a);
        perform(0x1d03c0f03ca);
        perform(0x1d03c0a82da);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0f03d2);
        perform(0x1d0320c832a);
        perform(0x1d0320b82f2);
        perform(0x1d02c0b02ca);
        perform(0x1002a0a82aa);
        perform(0x1002bfeffb2);
        perform(0x100300c030a);
        perform(0x100300a82fa);
        perform(0x1002c0c0312);
        perform(0x2d0b21b06d2);
        perform(0x2d0ac2c8b32);
        perform(0x2d0b22c8b2a);
        perform(0x2d0b22b8af2);
        perform(0x2d0b21b86f2);
        perform(0x2d0ae2b8aea);
        perform(0x2d0ae2c8b32);
        perform(0x4c1322b0ad2);
        perform(0x4c12c4c9332);
        perform(0x4c1324c932a);
        perform(0x4c1324b92f2);
        perform(0x4c1322b8af2);
        perform(0x4c12e4b92ea);
        perform(0x4c12e4c9332);
        perform(0x8c2324b12d2);
        perform(0x8c22c8ca332);
        perform(0x8c2328ca32a);
        perform(0x8c2328ba2f2);
        perform(0x8c2324b92f2);
        perform(0x8c22e8ba2ea);
        perform(0x8c22e8ca332);
        perform(0x184328b22d2);
        perform(0x1842d0cc332);
        perform(0x184330cc32a);
        perform(0x184330bc2f2);
        perform(0x184328ba2f2);
        perform(0x1842f0bc2ea);
        perform(0x1842f0cc332);
        perform(0x184320b02d2);
        perform(0x1842d0cc332);
        perform(0x184330cc32a);
        perform(0x184330bc2f2);
        perform(0x184320b82f2);
        perform(0x1842f0bc2ea);
        perform(0x1842f0cc332);
        perform(0x10c2320b02d2);
        perform(0x10c22c8ca332);
        perform(0x10c2328ca32a);
        perform(0x10c2328ba2f2);
        perform(0x10c2320b82f2);
        perform(0x10c22e8ba2ea);
        perform(0x10c22e8ca332);
        perform(0x8a1320b02d2);
        perform(0x8a12c4c9332);
        perform(0x8a1324c932a);
        perform(0x8a1324b92f2);
        perform(0x8a1320b82f2);
        perform(0x8a12e4b92ea);
        perform(0x8a12e4c9332);
        perform(0x4d0b20b02d2);
        perform(0x4d0ac2c8b32);
        perform(0x4d0b22c8b2a);
        perform(0x4d0b22b8af2);
        perform(0x4d0b20b82f2);
        perform(0x4d0ae2b8aea);
        perform(0x4d0ae2c8b32);
        perform(0x2c8720b02d2);
        perform(0x2c86c1c8732);
        perform(0x2c8721c872a);
        perform(0x2c8721b86f2);
        perform(0x2c8720b82f2);
        perform(0x2c86e1b86ea);
        perform(0x2c86e1c8732);
        perform(0x1d0320c832a);
        perform(0x100320a82b2);
        perform(0x2c8720b02d2);
        perform(0x2d0b21b06d2);
        perform(0x1d02e0b82ea);
        perform(0x1d02e0f03d2);
        perform(0x1d02c0b02ca);
        perform(0x1d02c0c8332);
        perform(0x1d02a0a82aa);
        perform(0x1d02a0c83da);
        perform(0x1d0280a028a);
        perform(0x1d0280b02fa);
        perform(0x1d03c0f03ca);
        perform(0x1d03c0a02ba);
        perform(0x1fffbfeffaa);
        perform(0x1fffbfe7f92);
        perform(0x1bdf1ff7fd2);
        perform(0x1087a1e87a2);
        perform(0x1d0781e078a);
        perform(0x1d0721c872a);
        perform(0x108737c5f12);
        perform(0x108781c8732);
        perform(0x18c721e0792);
        perform(0x18c791cc732);
        perform(0x10ca721e0792);
        perform(0x10ca789ca732);
        perform(0x8a9721e0792);
        perform(0x8a9785c9732);
        perform(0x4b8f21e0792);
        perform(0x4b8f83c8f32);
        perform(0x2d0b21e0792);
        perform(0x2d0b82c8b32);
        perform(0x1086e1b86ea);
        perform(0x1086e1f07d2);
        perform(0x1086c1b06ca);
        perform(0x108701c070a);
        perform(0x108701b86f2);
        perform(0x108701c8732);
        perform(0x1086e1b86ea);
        perform(0x1086e1c07ba);
        perform(0x1087a1e87aa);
        perform(0x1087a1b86f2);
        perform(0x1d06e1b86ea);
        perform(0x1d06e1f07d2);
        perform(0x1c86c1b06ca);
        perform(0x1d6adab6ac2);
        perform(0x2c86c2b8af2);
        perform(0x2c0ac3b8ef2);
        perform(0x1d06a1a86aa);
        perform(0x1d06a1c86da);
        perform(0x1d0681a068a);
        perform(0x1d0681e07da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c1a06ba);
        perform(0x108781e078a);
        perform(0x108780f03d2);
        perform(0x108721c872a);
        perform(0x108721e0792);
        perform(0x108781e078a);
        perform(0x108781c87ba);
        perform(0x1003c0f03ca);
        perform(0x1003c1e0792);
        perform(0x1d6bbaeebaa);
        perform(0x1d6bb7c5f12);
        perform(0x1d6b9ae6b8a);
        perform(0x1d6b9aeebb2);
        perform(0x1d6b3aceb2a);
        perform(0x1d6b3af6b9a);
        perform(0x1d6bdaf6bca);
        perform(0x1d6bdaceb32);
        perform(0x1fdf37cdf2a);
        perform(0x1f5f3705c12 | (regZ << 5) | (regZ << 15));
        perform(0x1fdf97e5f8a);
        perform(0x1fdf97cdf32);
        perform(0x1fdf37cdf22);
        perform(0x1d07a1e87aa);
        perform(0x1d06e1b86ea);
        perform(0x1d2ecbb2eca);
        perform(0x1d2ecbf2fd2);
        perform(0x1d2eabaaeaa);
        perform(0x2d32acb32d2);
        perform(0x2caeccab2b2);
        perform(0x4cb6adb36d2);
        perform(0x4baecdab6b2);
        perform(0x8bbeafb3ed2);
        perform(0x89aecfabeb2);
        perform(0x19ceb3b4ed2);
        perform(0x15aed3aceb2);
        perform(0x1d6afabeaea);
        perform(0x1d6aebb2ed2);
        perform(0x1d6bbabeaf2);
        perform(0x152afaeebb2);
        perform(0x152baabaaf2);
        perform(0x1090aeaeabb2);
        perform(0x1090ba2b8af2);
        perform(0x8b1aeaeabb2);
        perform(0x8b1ba6b9af2);
        perform(0x4c12e6e9bb2);
        perform(0x4c13a4b92f2);
        perform(0x2c86e2e8bb2);
        perform(0x2c87a1b86f2);
        perform(0x1def3bcef2a);
        perform(0x1def3abeaf2);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1f07d2);
        perform(0x1d46b1ac6aa);
        perform(0x1806a1a86a2);
        perform(0x1d6aaab2ad2);
        perform(0x1ce6a9b26d2);
        perform(0x1c62a8b22d2);
        perform(0x1bdea7b1ed2);
        perform(0x1b5aa6b1ad2);
        perform(0x1ad6a5b16d2);
        perform(0x1a52a4b12d2);
        perform(0x19cea3b0ed2);
        perform(0x194aa2b0ad2);
        perform(0x18c6a1b06d2);
        perform(0x1d0681a068a);
        perform(0x1d0681b86ba);
        perform(0x1d06619866a);
        perform(0x1d0661e87da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c19869a);
        perform(0x1d07a1e87aa);
        perform(0x1d06e1b86ea);
        perform(0x1d4ed3b4eca);
        perform(0x1d4ed3f4fd2);
        perform(0x1d4eb3aceaa);
        perform(0x2d52b4b52d2);
        perform(0x2cced4ad2b2);
        perform(0x4cd6b5b56d2);
        perform(0x4bced5ad6b2);
        perform(0x1bdeb7b5ed2);
        perform(0x19ced7adeb2);
        perform(0x1d6afabeaea);
        perform(0x1d6af3b4ed2);
        perform(0x1d6bbabeaf2);
        perform(0x152afaeebb2);
        perform(0x152baabaaf2);
        perform(0x1090aeaeabb2);
        perform(0x1090ba2b8af2);
        perform(0x8b1aeaeabb2);
        perform(0x8b1ba6b9af2);
        perform(0x4c12e6e9bb2);
        perform(0x4c13a4b92f2);
        perform(0x2c86e2e8bb2);
        perform(0x2c87a1b86f2);
        perform(0x1d6b3aceb2a);
        perform(0x1d6b3abeaf2);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1f07d2);
        perform(0x1d26a9aa6aa);
        perform(0x1406a1a86a2);
        perform(0x9d46a9b26d2);
        perform(0x9cc2a8b22d2);
        perform(0x9c3ea7b1ed2);
        perform(0x9bbaa6b1ad2);
        perform(0x9b36a5b16d2);
        perform(0x9ab2a4b12d2);
        perform(0x9a2ea3b0ed2);
        perform(0x99aaa2b0ad2);
        perform(0x9926a1b06d2);
        perform(0x1d0681a068a);
        perform(0x1d0681b86ba);
        perform(0x1d06619866a);
        perform(0x1d0661e87da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c19869a);
        perform(0x1d07a1e87aa);
        perform(0x1d06e1b86ea);
        perform(0x1d5ed7b5eca);
        perform(0x1d5ed7f5fd2);
        perform(0x1d5eb7adeaa);
        perform(0x2d62b8b62d2);
        perform(0x2cded8ae2b2);
        perform(0x1ce6b9b66d2);
        perform(0x1bded9ae6b2);
        perform(0x1d6afabeaea);
        perform(0x1d6af7b5ed2);
        perform(0x1d6bbabeaf2);
        perform(0x152afaeebb2);
        perform(0x152baabaaf2);
        perform(0x1090aeaeabb2);
        perform(0x1090ba2b8af2);
        perform(0x8b1aeaeabb2);
        perform(0x8b1ba6b9af2);
        perform(0x4c12e6e9bb2);
        perform(0x4c13a4b92f2);
        perform(0x2c86e2e8bb2);
        perform(0x2c87a1b86f2);
        perform(0x1ce739ce72a);
        perform(0x1ce73abeaf2);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1f07d2);
        perform(0x1d16a5a96aa);
        perform(0x1206a1a86a2);
        perform(0x5d1aa2b0ad2);
        perform(0x5c96a1b06d2);
        perform(0x5c26a5b16d2);
        perform(0x5ba2a4b12d2);
        perform(0x5b1ea3b0ed2);
        perform(0x1d0681a068a);
        perform(0x1d0681b86ba);
        perform(0x1d06619866a);
        perform(0x1d0661e87da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c19869a);
        perform(0x1d07a1e87aa);
        perform(0x1d06e1b86ea);
        perform(0x1d6719c670a);
        perform(0x1d6719f67d2);
        perform(0x1d66d9b66ca);
        perform(0x1d6adac6b12);
        perform(0x1ce71ab6ad2);
        perform(0x1d6afabeaea);
        perform(0x1d6af9c6712);
        perform(0x1d6bbabeaf2);
        perform(0x152afaeebb2);
        perform(0x152baabaaf2);
        perform(0x1090aeaeabb2);
        perform(0x1090ba2b8af2);
        perform(0x8b1aeaeabb2);
        perform(0x8b1ba6b9af2);
        perform(0x4c12e6e9bb2);
        perform(0x4c13a4b92f2);
        perform(0x2c86e2e8bb2);
        perform(0x2c87a1b86f2);
        perform(0x1c6338ce32a);
        perform(0x1c633abeaf2);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1f07d2);
        perform(0x1d0ea3a8eaa);
        perform(0x1106a1a86a2);
        perform(0x3d16a3b0ed2);
        perform(0x3c92a2b0ad2);
        perform(0x3c0ea1b06d2);
        perform(0x1d0681a068a);
        perform(0x1d0681b86ba);
        perform(0x1d06619866a);
        perform(0x1d0661e87da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c19869a);
        perform(0x1d07a1e87aa);
        perform(0x1d06e1b86ea);
        perform(0x1d6b1ac6b0a);
        perform(0x1d6b1af6bd2);
        perform(0x1d6adab6aca);
        perform(0x1d6afabeaea);
        perform(0x1d6afac6b12);
        perform(0x1d6bbabeaf2);
        perform(0x152afaeebb2);
        perform(0x152baabaaf2);
        perform(0x1090aeaeabb2);
        perform(0x1090ba2b8af2);
        perform(0x8b1aeaeabb2);
        perform(0x8b1ba6b9af2);
        perform(0x4c12e6e9bb2);
        perform(0x4c13a4b92f2);
        perform(0x2c86e2e8bb2);
        perform(0x2c87a1b86f2);
        perform(0x1bdf37cdf2a);
        perform(0x1bdf3abeaf2);
        perform(0x1d06c1b06ca);
        perform(0x1d06c1f07d2);
        perform(0x1d0aa2a8aaa);
        perform(0x1086a1a86a2);
        perform(0x2d0aa1b06d2);
        perform(0x2c8ea2b0ad2);
        perform(0x1d0681a068a);
        perform(0x1d0681b86ba);
        perform(0x1d06619866a);
        perform(0x1d0661e87da);
        perform(0x1d07c1f07ca);
        perform(0x1d07c19869a);
        perform(0x1d6bbaeebaa);
        perform(0x1d6bbaf6bd2);
        perform(0x1bdf3aeebb2);
        perform(0x1c633aeebb2);
        perform(0x1ce73aeebb2);
        perform(0x1d6b3aeebb2);
        perform(0x1def3aeebb2);
        perform(0x1fdef7bdeea);
        perform(0x1fdef7cdf32);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7bdf9a);
        perform(0x1fded7b5eca);
        perform(0x1fded7adeb2);
        perform(0x1fde97a5e8a);
        perform(0x1fde97e5f92);
        perform(0x1fde779de6a);
        perform(0x1fde77bdef2);
        perform(0x1fde5795e4a);
        perform(0x1fde579de9a);
        perform(0x1fde97a5e8a);
        perform(0x1fde9795e52);
        perform(0x1bde97b5ed2);
        perform(0x2fe6d8a6292);
        perform(0x2fe699b66d2);
        perform(0x2fe6d9b66ca);
        perform(0x2fe6d9ae6b2);
        perform(0x2fe6d8ae2b2);
        perform(0x2fe6b9ae6aa);
        perform(0x2fe6b9b66d2);
        perform(0x4feed9a6692);
        perform(0x4fee9bb6ed2);
        perform(0x4feedbb6eca);
        perform(0x4feedbaeeb2);
        perform(0x4feed9ae6b2);
        perform(0x4feebbaeeaa);
        perform(0x4feebbb6ed2);
        perform(0x1ffedba6e92);
        perform(0x1ffe9fb7ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfafeb2);
        perform(0x1ffedbaeeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfb7ed2);
        perform(0x1ffed7a5e92);
        perform(0x1ffe9fb7ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfafeb2);
        perform(0x1ffed7adeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfb7ed2);
        perform(0x1deed7a5e92);
        perform(0x1dee9bb6ed2);
        perform(0x1deedbb6eca);
        perform(0x1deedbaeeb2);
        perform(0x1deed7adeb2);
        perform(0x1deebbaeeaa);
        perform(0x1deebbb6ed2);
        perform(0x4ee6d7a5e92);
        perform(0x4ee699b66d2);
        perform(0x4ee6d9b66ca);
        perform(0x4ee6d9ae6b2);
        perform(0x4ee6d7adeb2);
        perform(0x4ee6b9ae6aa);
        perform(0x4ee6b9b66d2);
        perform(0x2f62d7a5e92);
        perform(0x2f6298b62d2);
        perform(0x2f62d8b62ca);
        perform(0x2f62d8ae2b2);
        perform(0x2f62d7adeb2);
        perform(0x2f62b8ae2aa);
        perform(0x2f62b8b62d2);
        perform(0x1fded7b5eca);
        perform(0x1bded7b5eca);
        perform(0x2f62d7a5e92);
        perform(0x2fe6d8a6292);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7bdf9a);
        perform(0x1fde97a5e8a);
        perform(0x1fde97e5eba);
        perform(0x1fde779de6a);
        perform(0x1fde77bdeba);
        perform(0x1fdf97e5f8a);
        perform(0x1fdf979de9a);
        perform(0x1fdeb7adeaa);
        perform(0x1fdeb7b5f9a);
        perform(0x1fde97a5e8a);
        perform(0x1fde97e5eba);
        perform(0x1fde779de6a);
        perform(0x1fde77b5eba);
        perform(0x1fdf97e5f8a);
        perform(0x1fdf979de9a);
        perform(0x1003a0e83aa);
        perform(0x100380e038a);
        perform(0x1003a1f07d2);
        perform(0x100380e83b2);
        perform(0x1003a0e83aa);
        perform(0x1003a0f039a);
        perform(0x1003c0f03ca);
        perform(0x1003c0e83b2);
        perform(0x1103a0e83aa);
        perform(0x1003a3f0fd2);
        perform(0x100380e038a);
        perform(0x100380e83b2);
        perform(0x110ba0e03da);
        perform(0x110bc2e8bb2);
        perform(0x1d0ee3b8eea);
        perform(0x1d0ee3f0fd2);
        perform(0x1d0f23c8f2a);
        perform(0x1d0f23b8ef2);
        perform(0x1d0ec3b0eca);
        perform(0x118f83e0f8a);
        perform(0x118f82f0bd2);
        perform(0x118fa3e8faa);
        perform(0x118fa3e0efa);
        perform(0x118ec3e8fb2);
        perform(0x2c9724b12d2);
        perform(0x2c96c5c9732);
        perform(0x2c9725c972a);
        perform(0x2c9725b96f2);
        perform(0x2c9724b92f2);
        perform(0x2c96e5b96ea);
        perform(0x2c96e5c9732);
        perform(0x4b9f25b16d2);
        perform(0x4b9ec7c9f32);
        perform(0x4b9f27c9f2a);
        perform(0x4b9f27b9ef2);
        perform(0x4b9f25b96f2);
        perform(0x4b9ee7b9eea);
        perform(0x4b9ee7c9f32);
        perform(0x89af27b1ed2);
        perform(0x89aecbcaf32);
        perform(0x89af2bcaf2a);
        perform(0x89af2bbaef2);
        perform(0x89af27b9ef2);
        perform(0x89aeebbaeea);
        perform(0x89aeebcaf32);
        perform(0x19cf2bb2ed2);
        perform(0x19ced3ccf32);
        perform(0x19cf33ccf2a);
        perform(0x19cf33bcef2);
        perform(0x19cf2bbaef2);
        perform(0x19cef3bceea);
        perform(0x19cef3ccf32);
        perform(0x19cf23b0ed2);
        perform(0x19ced3ccf32);
        perform(0x19cf33ccf2a);
        perform(0x19cf33bcef2);
        perform(0x19cf23b8ef2);
        perform(0x19cef3bceea);
        perform(0x19cef3ccf32);
        perform(0x15af23b0ed2);
        perform(0x15aecbcaf32);
        perform(0x15af2bcaf2a);
        perform(0x15af2bbaef2);
        perform(0x15af23b8ef2);
        perform(0x15aeebbaeea);
        perform(0x15aeebcaf32);
        perform(0x8b9f23b0ed2);
        perform(0x8b9ec7c9f32);
        perform(0x8b9f27c9f2a);
        perform(0x8b9f27b9ef2);
        perform(0x8b9f23b8ef2);
        perform(0x8b9ee7b9eea);
        perform(0x8b9ee7c9f32);
        perform(0x4c9723b0ed2);
        perform(0x4c96c5c9732);
        perform(0x4c9725c972a);
        perform(0x4c9725b96f2);
        perform(0x4c9723b8ef2);
        perform(0x4c96e5b96ea);
        perform(0x4c96e5c9732);
        perform(0x2d1323b0ed2);
        perform(0x2d12c4c9332);
        perform(0x2d1324c932a);
        perform(0x2d1324b92f2);
        perform(0x2d1323b8ef2);
        perform(0x2d12e4b92ea);
        perform(0x2d12e4c9332);
        perform(0x1d0f23c8f2a);
        perform(0x118f23e0f92);
        perform(0x2d1323b0ed2);
        perform(0x2c9724b12d2);
        perform(0x1bdfb7edfaa);
        perform(0x1bdfbab6ad2);
        perform(0x1d0ee3b8eea);
        perform(0x1d0ee3f0fd2);
        perform(0x1d0ec3b0eca);
        perform(0x1d0ec3c8f32);
        perform(0x1d0ea3a8eaa);
        perform(0x1d0ea3c8fda);
        perform(0x1d0e83a0e8a);
        perform(0x1d0e83b0efa);
        perform(0x1d0fc3f0fca);
        perform(0x1d0fc3a0eba);
        perform(0x1d6bbaeebaa);
        perform(0x1d6bb7edfb2);
        perform(0x1d6b3aceb2a);
        perform(0x1d6b3aeebb2);
        perform(0x1d6b1ac6b0a);
        perform(0x1d6b1af6b3a);
        perform(0x1d6bdaf6bca);
        perform(0x1d6bdac6b12);
        perform(0x1bdef7bdeea);
        perform(0x1bdef7edf1a);
        perform(0x1bded7b5eca);
        perform(0x1bded7bdf1a);
        perform(0x1bdeb7adeaa);
        perform(0x1bdeb7bdfba);
        perform(0x1bde97a5e8a);
        perform(0x1bde97adeda);
        perform(0x1bded7b5eca);
        perform(0x1bded7e5e9a);
        perform(0x1bdeb7adeaa);
        perform(0x1bdeb7a5eda);
        perform(0x1bde97a5e8a);
        perform(0x1bde97e5eda);
        perform(0x1bdf97e5f8a);
        perform(0x1bdf97ade9a);
        perform(0x1bdf37cdf2a);
        perform(0x1bdf37b5efa);
        perform(0x1fe318c630a);
        perform(0x1fe318e6392);
        perform(0x1fe338ce32a);
        perform(0x1fe338c6312);
        perform(0x1fe2f8be2ea);
        perform(0x1c62d8b62ca);
        perform(0x1c62d7cdf32);
        perform(0x1c63b8ee3aa);
        perform(0x1c63b8b631a);
        perform(0x1c62f8ee3b2);
        perform(0x2f6b39be6f2);
        perform(0x2f6afaceb32);
        perform(0x2f6b3aceb2a);
        perform(0x2f6b3ac6b12);
        perform(0x2f6b39c6712);
        perform(0x2f6b1ac6b0a);
        perform(0x2f6b1aceb32);
        perform(0x1e733abeaf2);
        perform(0x1e72fccf332);
        perform(0x1e733ccf32a);
        perform(0x1e733cc7312);
        perform(0x1e733ac6b12);
        perform(0x1e731cc730a);
        perform(0x1e731ccf332);
        perform(0x1e7338be2f2);
        perform(0x1e72fccf332);
        perform(0x1e733ccf32a);
        perform(0x1e733cc7312);
        perform(0x1e7338c6312);
        perform(0x1e731cc730a);
        perform(0x1e731ccf332);
        perform(0x4f6b38be2f2);
        perform(0x4f6afaceb32);
        perform(0x4f6b3aceb2a);
        perform(0x4f6b3ac6b12);
        perform(0x4f6b38c6312);
        perform(0x4f6b1ac6b0a);
        perform(0x4f6b1aceb32);
        perform(0x2fe738be2f2);
        perform(0x2fe6f9ce732);
        perform(0x2fe739ce72a);
        perform(0x2fe739c6712);
        perform(0x2fe738c6312);
        perform(0x2fe719c670a);
        perform(0x2fe719ce732);
        perform(0x1fe338ce32a);
        perform(0x1c6338b62d2);
        perform(0x2fe738be2f2);
        perform(0x2f6b39be6f2);
        perform(0x1fe318c630a);
        perform(0x1fe318e6392);
        perform(0x1fe2f8be2ea);
        perform(0x1fe2f8ce332);
        perform(0x1fe2d8b62ca);
        perform(0x1fe2d8ce39a);
        perform(0x1fe2b8ae2aa);
        perform(0x1fe2b8be31a);
        perform(0x1fe398e638a);
        perform(0x1fe398ae2da);
        perform(0x1b00000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1b03a0e83aa);
        perform(0x4a03a3f0fd2);
        perform(0x4a87a4f13d2);
        perform(0x4b0ba5f17d2);
        perform(0x498fa6f1bd2);
        perform(0x1b0000e83b2 | (regZ << 25));
        perform(0x1f5fb7edfaa);
        perform(0x1f5fb7e5f92);
        perform(0x1f5c1705c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f5c17edfb2 | (regZ << 25));
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fffff2);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fc7c1a | (regX << 5));
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff32);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffdff3a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfd7f1a);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fb7efa);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1feff3a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffcff1a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfeff1a);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fb7efa);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1ff7fd2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f3a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedff7c1a | (regX << 5));
        perform(0x1ffc1f07c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1ffc1fb7efa | (regZ << 25));
        perform(0x1fffbfeffaa);
        perform(0x1fffbaf6bd2);
        perform(0x1fff7fdff6a);
        perform(0x1fff7feff9a);
        perform(0x1fffdff7fca);
        perform(0x1fffdfdff72);
        perform(0x1bdc1ff7fd2 | (regZ << 25));
        perform(0x1c601ff7fd2 | (regZ << 25));
        perform(0x1ce41ff7fd2 | (regZ << 25));
        perform(0x1d681ff7fd2 | (regZ << 25));
        perform(0x1dec1ff7fd2 | (regZ << 25));
        perform(0x1e701ff7fd2 | (regZ << 25));
        perform(0x1ef41ff7fd2 | (regZ << 25));
        perform(0x1f781ff7fd2 | (regZ << 25));
        perform(0x10001ff7fd2 | (regZ << 25));
        perform(0x10841ff7fd2 | (regZ << 25));
        perform(0x11081ff7fd2 | (regZ << 25));
        perform(0x118c1ff7fd2 | (regZ << 25));
        perform(0x12101ff7fd2 | (regZ << 25));
        perform(0x12941ff7fd2 | (regZ << 25));
        perform(0x13181ff7fd2 | (regZ << 25));
        perform(0x139c1ff7fd2 | (regZ << 25));
        perform(0x14201ff7fd2 | (regZ << 25));
        perform(0x14a41ff7fd2 | (regZ << 25));
        perform(0x15281ff7fd2 | (regZ << 25));
        perform(0x15ac1ff7fd2 | (regZ << 25));
        perform(0x16301ff7fd2 | (regZ << 25));
        perform(0x16b41ff7fd2 | (regZ << 25));
        perform(0x17381ff7fd2 | (regZ << 25));
        perform(0x17bc1ff7fd2 | (regZ << 25));
        perform(0x18401ff7fd2 | (regZ << 25));
        perform(0x18c41ff7fd2 | (regZ << 25));
        perform(0x19481ff7fd2 | (regZ << 25));
        perform(0x19cc1ff7fd2 | (regZ << 25));
        perform(0x1a501ff7fd2 | (regZ << 25));
        perform(0x1ad41ff7fd2 | (regZ << 25));
        perform(0x1b581ff7fd2 | (regZ << 25));
        perform(0x1ffc1ff7fd2 | (regZ << 25));
    }

    template <>
    void multiply<int>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f83e000012 | (regX << 5) | (regX << 15));
        perform(0x1f83c0f03c2);
        perform(0x1f83a0e83a2);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036000012 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1000000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x100000c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036100412 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1084010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x108400c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036200812 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1108020080a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x110800c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036300c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x118c0300c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x118c00c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036401012 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1210040100a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x121000c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036501412 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1294050140a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x129400c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036601812 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1318060180a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x131800c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036701c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x139c0701c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x139c00c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036802012 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1420080200a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x142000c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036902412 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x14a4090240a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x14a400c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036a02812 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x15280a0280a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x152800c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036b02c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x15ac0b02c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x15ac00c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036c03012 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x16300c0300a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x163000c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036d03412 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x16b40d0340a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x16b400c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036e03812 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x17380e0380a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x173800c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10036f03c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x17bc0f03c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x17bc00c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037004012 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1840100400a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x184000c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037104412 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x18c4110440a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x18c400c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037204812 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1948120480a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x194800c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037304c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x19cc1304c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x19cc00c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037405012 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1a50140500a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1a5000c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037505412 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1ad4150540a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1ad400c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037605812 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1b58160580a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1b5800c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037705c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1bdc1705c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1bdc00c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037806012 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1c60180600a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1c6000c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037906412 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1ce4190640a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1ce400c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037a06812 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1d681a0680a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1d6800c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037b06c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1dec1b06c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1dec00c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037c07012 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1e701c0700a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1e7000c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037d07412 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1ef41d0740a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1ef400c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037e07812 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1f781e0780a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1f7800c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
        perform(0x1f8360d836a);
        perform(0x1f8380e038a);
        perform(0x10037f07c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8380f83f2);
        perform(0x1f8360d836a);
        perform(0x1f8360e83da);
        perform(0x1f8340d034a);
        perform(0x1f8340d83da);
        perform(0x1f8320c832a);
        perform(0x1f8320d83ba);
        perform(0x1f8300c030a);
        perform(0x1f8300c835a);
        perform(0x1f8340d034a);
        perform(0x1f8340c039a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c035a);
        perform(0x1f8320c832a);
        perform(0x1f8320d039a);
        perform(0x1ffc1f07c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f03c0f03ca);
        perform(0x1ffc00c837a | (regZ << 25));
        perform(0x2f03c1c877a);
        perform(0x2e87c2c8b7a);
    }

    template <>
    void multiply<float>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1003ff07c12 | (regX << 5) | (regX << 15));
        perform(0x14a7e000012 | (regX << 5) | (regX << 15));
        perform(0x152be100412 | (regX << 5) | (regX << 15));
        perform(0x15afe200812 | (regX << 5) | (regX << 15));
        perform(0x1633e300c12 | (regX << 5) | (regX << 15));
        perform(0x16b7e401012 | (regX << 5) | (regX << 15));
        perform(0x173be501412 | (regX << 5) | (regX << 15));
        perform(0x17bfe601812 | (regX << 5) | (regX << 15));
        perform(0x1843e701c12 | (regX << 5) | (regX << 15));
        perform(0x18c7e802012 | (regX << 5) | (regX << 15));
        perform(0x194be902412 | (regX << 5) | (regX << 15));
        perform(0x19cfea02812 | (regX << 5) | (regX << 15));
        perform(0x1a53eb02c12 | (regX << 5) | (regX << 15));
        perform(0x1ad7ec03012 | (regX << 5) | (regX << 15));
        perform(0x1b5bed03412 | (regX << 5) | (regX << 15));
        perform(0x1bdfee03812 | (regX << 5) | (regX << 15));
        perform(0x1c63ef03c12 | (regX << 5) | (regX << 15));
        perform(0x1ce7f004012 | (regX << 5) | (regX << 15));
        perform(0x1d6bf104412 | (regX << 5) | (regX << 15));
        perform(0x1deff204812 | (regX << 5) | (regX << 15));
        perform(0x1e73f304c12 | (regX << 5) | (regX << 15));
        perform(0x1ef7f405012 | (regX << 5) | (regX << 15));
        perform(0x1f7bf505412 | (regX << 5) | (regX << 15));
        perform(0x1ffff605812 | (regX << 5) | (regX << 15));
        perform(0x1087f705c12 | (regX << 5) | (regX << 15));
        perform(0x110bf806012 | (regX << 5) | (regX << 15));
        perform(0x118ff906412 | (regX << 5) | (regX << 15));
        perform(0x1213fa06812 | (regX << 5) | (regX << 15));
        perform(0x1297fb06c12 | (regX << 5) | (regX << 15));
        perform(0x131bfc07012 | (regX << 5) | (regX << 15));
        perform(0x139ffd07412 | (regX << 5) | (regX << 15));
        perform(0x1423fe07812 | (regX << 5) | (regX << 15));
        perform(0x1f80000000a | (regX << 5) | (regX << 15) | (regX << 25));
        perform(0x1f8000f83f2 | (regX << 25));
        perform(0x1f83e0f83ea);
        perform(0x1003ff07c12 | (regY << 5) | (regY << 15));
        perform(0x14a7e000012 | (regY << 5) | (regY << 15));
        perform(0x152be100412 | (regY << 5) | (regY << 15));
        perform(0x15afe200812 | (regY << 5) | (regY << 15));
        perform(0x1633e300c12 | (regY << 5) | (regY << 15));
        perform(0x16b7e401012 | (regY << 5) | (regY << 15));
        perform(0x173be501412 | (regY << 5) | (regY << 15));
        perform(0x17bfe601812 | (regY << 5) | (regY << 15));
        perform(0x1843e701c12 | (regY << 5) | (regY << 15));
        perform(0x18c7e802012 | (regY << 5) | (regY << 15));
        perform(0x194be902412 | (regY << 5) | (regY << 15));
        perform(0x19cfea02812 | (regY << 5) | (regY << 15));
        perform(0x1a53eb02c12 | (regY << 5) | (regY << 15));
        perform(0x1ad7ec03012 | (regY << 5) | (regY << 15));
        perform(0x1b5bed03412 | (regY << 5) | (regY << 15));
        perform(0x1bdfee03812 | (regY << 5) | (regY << 15));
        perform(0x1c63ef03c12 | (regY << 5) | (regY << 15));
        perform(0x1ce7f004012 | (regY << 5) | (regY << 15));
        perform(0x1d6bf104412 | (regY << 5) | (regY << 15));
        perform(0x1deff204812 | (regY << 5) | (regY << 15));
        perform(0x1e73f304c12 | (regY << 5) | (regY << 15));
        perform(0x1ef7f405012 | (regY << 5) | (regY << 15));
        perform(0x1f7bf505412 | (regY << 5) | (regY << 15));
        perform(0x1ffff605812 | (regY << 5) | (regY << 15));
        perform(0x1087f705c12 | (regY << 5) | (regY << 15));
        perform(0x110bf806012 | (regY << 5) | (regY << 15));
        perform(0x118ff906412 | (regY << 5) | (regY << 15));
        perform(0x1213fa06812 | (regY << 5) | (regY << 15));
        perform(0x1297fb06c12 | (regY << 5) | (regY << 15));
        perform(0x131bfc07012 | (regY << 5) | (regY << 15));
        perform(0x139ffd07412 | (regY << 5) | (regY << 15));
        perform(0x1423fe07812 | (regY << 5) | (regY << 15));
        perform(0x1f80000000a | (regY << 5) | (regY << 15) | (regY << 25));
        perform(0x1f8000f83f2 | (regY << 25));
        perform(0x1fa3e8fa3ea);
        perform(0x1f23c8f23ca);
        perform(0x2f23c902412 | (regX << 5) | (regX << 15));
        perform(0x2ea7ca02812 | (regX << 5) | (regX << 15));
        perform(0x1f23e8f23d2);
        perform(0x1407c1f07ca);
        perform(0x1407c100412 | (regX << 5) | (regX << 15));
        perform(0x1407a1e87aa);
        perform(0x2387a1f07d2);
        perform(0x240bc1e87b2);
        perform(0x430ba2f0bd2);
        perform(0x4413c2e8bb2);
        perform(0x1213a4f13d2);
        perform(0x1423c4e93b2);
        perform(0x1ffffffffea);
        perform(0x1fffe8f23d2);
        perform(0x1fa3c8f23ca);
        perform(0x1f23a8ea3aa);
        perform(0x2f23a902412 | (regY << 5) | (regY << 15));
        perform(0x2ea7aa02812 | (regY << 5) | (regY << 15));
        perform(0x1f23c8ea3b2);
        perform(0x1407a1e87aa);
        perform(0x1407a100412 | (regY << 5) | (regY << 15));
        perform(0x140781e078a);
        perform(0x238781e87b2);
        perform(0x240ba1e0792);
        perform(0x430b82e8bb2);
        perform(0x4413a2e0b92);
        perform(0x121384e93b2);
        perform(0x1423a4e1392);
        perform(0x1fffdff7fca);
        perform(0x1fffc8ea3b2);
        perform(0x1fa368da36a);
        perform(0x1fa368fa3f2);
        perform(0x1fa388e2382);
        perform(0x1fa348d2342);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142308f23d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1423a8ea3aa);
        perform(0x1f2388e238a);
        perform(0x1423a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142309f27d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x14a7a9ea7aa);
        perform(0x1f2388e238a);
        perform(0x14a7a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14230af2bd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x152baaeabaa);
        perform(0x1f2388e238a);
        perform(0x152ba8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14230bf2fd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x15afabeafaa);
        perform(0x1f2388e238a);
        perform(0x15afa8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14230cf33d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1633aceb3aa);
        perform(0x1f2388e238a);
        perform(0x1633a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14230df37d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x16b7adeb7aa);
        perform(0x1f2388e238a);
        perform(0x16b7a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14230ef3bd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x173baeebbaa);
        perform(0x1f2388e238a);
        perform(0x173ba8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14230ff3fd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x17bfafebfaa);
        perform(0x1f2388e238a);
        perform(0x17bfa8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142310f43d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1843b0ec3aa);
        perform(0x1f2388e238a);
        perform(0x1843a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142311f47d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x18c7b1ec7aa);
        perform(0x1f2388e238a);
        perform(0x18c7a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142312f4bd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x194bb2ecbaa);
        perform(0x1f2388e238a);
        perform(0x194ba8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142313f4fd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x19cfb3ecfaa);
        perform(0x1f2388e238a);
        perform(0x19cfa8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142314f53d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1a53b4ed3aa);
        perform(0x1f2388e238a);
        perform(0x1a53a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142315f57d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1ad7b5ed7aa);
        perform(0x1f2388e238a);
        perform(0x1ad7a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142316f5bd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1b5bb6edbaa);
        perform(0x1f2388e238a);
        perform(0x1b5ba8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142317f5fd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1bdfb7edfaa);
        perform(0x1f2388e238a);
        perform(0x1bdfa8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142318f63d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1c63b8ee3aa);
        perform(0x1f2388e238a);
        perform(0x1c63a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x142319f67d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1ce7b9ee7aa);
        perform(0x1f2388e238a);
        perform(0x1ce7a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14231af6bd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1d6bbaeebaa);
        perform(0x1f2388e238a);
        perform(0x1d6ba8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14231bf6fd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1defbbeefaa);
        perform(0x1f2388e238a);
        perform(0x1defa8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14231cf73d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1e73bcef3aa);
        perform(0x1f2388e238a);
        perform(0x1e73a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14231df77d2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1ef7bdef7aa);
        perform(0x1f2388e238a);
        perform(0x1ef7a8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14231ef7bd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1f7bbeefbaa);
        perform(0x1f2388e238a);
        perform(0x1f7ba8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa308c230a);
        perform(0x1fa328ca32a);
        perform(0x14231ff7fd2);
        perform(0x142328c2312);
        perform(0x1c6308ca332);
        perform(0x1c6338c6312);
        perform(0x184308ca332);
        perform(0x184330c4312);
        perform(0x8e3308ca332);
        perform(0x8e332cc3312);
        perform(0x4f2b08ca332);
        perform(0x4f2b2ac2b12);
        perform(0x2fa708ca332);
        perform(0x2fa729c2712);
        perform(0x1fa328da372);
        perform(0x1fa308c230a);
        perform(0x1fa308d239a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8c239a);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8c235a);
        perform(0x1fa2a8aa2aa);
        perform(0x1fa2a8b22fa);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8aa33a);
        perform(0x1fa348d234a);
        perform(0x1fa348ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308aa2fa);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba33a);
        perform(0x1fffbfeffaa);
        perform(0x1f2388e238a);
        perform(0x1fffa8b231a);
        perform(0x2f2389b271a);
        perform(0x2ea78ab2b1a);
        perform(0x1fa328ca32a);
        perform(0x1fa328e235a);
        perform(0x1fa368da36a);
        perform(0x1fa368ca332);
        perform(0x1fa308c230a);
        perform(0x1fa308d2352);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8e2392);
        perform(0x1fa2c8b22ca);
        perform(0x1fa2c8ba31a);
        perform(0x1fa308c230a);
        perform(0x1fa308b22d2);
        perform(0x2f2b69c2712);
        perform(0x2f2b0adab72);
        perform(0x2f2b6adab6a);
        perform(0x2f2b6acab32);
        perform(0x2f2b69ca732);
        perform(0x2f2b2acab2a);
        perform(0x2f2b2adab72);
        perform(0x4e336ac2b12);
        perform(0x4e330cdb372);
        perform(0x4e336cdb36a);
        perform(0x4e336ccb332);
        perform(0x4e336acab32);
        perform(0x4e332ccb32a);
        perform(0x4e332cdb372);
        perform(0x8c436cc3312);
        perform(0x8c4310dc372);
        perform(0x8c4370dc36a);
        perform(0x8c4370cc332);
        perform(0x8c436ccb332);
        perform(0x8c4330cc32a);
        perform(0x8c4330dc372);
        perform(0x1c6370c4312);
        perform(0x1c6318de372);
        perform(0x1c6378de36a);
        perform(0x1c6378ce332);
        perform(0x1c6370cc332);
        perform(0x1c6338ce32a);
        perform(0x1c6338de372);
        perform(0x1c6368c2312);
        perform(0x1c6318de372);
        perform(0x1c6378de36a);
        perform(0x1c6378ce332);
        perform(0x1c6368ca332);
        perform(0x1c6338ce32a);
        perform(0x1c6338de372);
        perform(0x184368c2312);
        perform(0x184310dc372);
        perform(0x184370dc36a);
        perform(0x184370cc332);
        perform(0x184368ca332);
        perform(0x184330cc32a);
        perform(0x184330dc372);
        perform(0x8e3368c2312);
        perform(0x8e330cdb372);
        perform(0x8e336cdb36a);
        perform(0x8e336ccb332);
        perform(0x8e3368ca332);
        perform(0x8e332ccb32a);
        perform(0x8e332cdb372);
        perform(0x4f2b68c2312);
        perform(0x4f2b0adab72);
        perform(0x4f2b6adab6a);
        perform(0x4f2b6acab32);
        perform(0x4f2b68ca332);
        perform(0x4f2b2acab2a);
        perform(0x4f2b2adab72);
        perform(0x2fa768c2312);
        perform(0x2fa709da772);
        perform(0x2fa769da76a);
        perform(0x2fa769ca732);
        perform(0x2fa768ca332);
        perform(0x2fa729ca72a);
        perform(0x2fa729da772);
        perform(0x1fa368da36a);
        perform(0x142368da362);
        perform(0x2fa768c2312);
        perform(0x2f2b69c2712);
        perform(0x1fa328ca32a);
        perform(0x1fa328e235a);
        perform(0x1fa308c230a);
        perform(0x1fa308d233a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8e233a);
        perform(0x1fa388e238a);
        perform(0x1fa388ba31a);
        perform(0x1fa328ca32a);
        perform(0x1fa328da39a);
        perform(0x1fa308c230a);
        perform(0x1fa308e233a);
        perform(0x1fa2e8ba2ea);
        perform(0x1fa2e8da33a);
        perform(0x1fa388e238a);
        perform(0x1fa388ba31a);
        perform(0x1f83e0f83ea);
        perform(0x1003ffe7f92);
        perform(0x1003c0f03ca);
        perform(0x1003c0f83f2);
        perform(0x139fffeffb2);
        perform(0x139b86e1b8a);
        perform(0x139f87f9ff2);
        perform(0x131bfeefbb2);
        perform(0x131b86f9bf2);
        perform(0x1ea3e8fa3ea);
        perform(0x1ea3e8ea3b2);
        perform(0x1ea3c8f23ca);
        perform(0x2e23c8fa3f2);
        perform(0x2ea7e8f23d2);
        perform(0x4dafcbfaff2);
        perform(0x4eb7ebf2fd2);
        perform(0x8ca7c9fa7f2);
        perform(0x8eb7e9f27d2);
        perform(0x1ad7d5fd7f2);
        perform(0x1ef7f5f57d2);
        perform(0x16b7cdfb7f2);
        perform(0x1ef7edf37d2);
        perform(0x129785e178a);
        perform(0x12979dff7f2);
        perform(0x131be6f9be2);
        perform(0x1f9bc6f1bca);
        perform(0x1f9ba6e9baa);
        perform(0x131ba0f03d2);
        perform(0x131bc6e9bb2);
        perform(0x1b5ba6f1bd2);
        perform(0x1b5bd6edbb2);
        perform(0x10f3ba6f1bd2);
        perform(0x10f3bceebbb2);
        perform(0x8d2ba6f1bd2);
        perform(0x8d2bcaeabb2);
        perform(0x4e23a6f1bd2);
        perform(0x4e23c8ea3b2);
        perform(0x2f9fa6f1bd2);
        perform(0x2f9fc7e9fb2);
        perform(0x131b46d1b4a);
        perform(0x131b46e1b92);
        perform(0x131b26c9b2a);
        perform(0x131b66d9b6a);
        perform(0x131b66d1b52);
        perform(0x131b66e9bb2);
        perform(0x131b46d1b4a);
        perform(0x131b46d9bfa);
        perform(0x131be6f9bea);
        perform(0x131be6d1b52);
        perform(0x1f9b66d9b6a);
        perform(0x1f9b66e1b92);
        perform(0x1f1b46d1b4a);
        perform(0x1fff5fd7f42);
        perform(0x2f1b47d9f72);
        perform(0x2e9f48da372);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26e9b5a);
        perform(0x1f9b06c1b0a);
        perform(0x1f9b06f1b9a);
        perform(0x1f9b86e1b8a);
        perform(0x1f9b86c1b3a);
        perform(0x131bc6f1bca);
        perform(0x131bc5e1792);
        perform(0x131ba6e9baa);
        perform(0x131ba6f1bd2);
        perform(0x131bc6f1bca);
        perform(0x131bc6e9bfa);
        perform(0x129785e178a);
        perform(0x129786f1bd2);
        perform(0x1317e5f97ea);
        perform(0x1297e7e1f92);
        perform(0x1297c5f17ca);
        perform(0x1297c5f97f2);
        perform(0x131be5f179a);
        perform(0x131b86f9bf2);
        perform(0x1f1fa7e9faa);
        perform(0x1f1fa7e1f92);
        perform(0x1f1fc7f1fca);
        perform(0x1f1fc7e9fb2);
        perform(0x1f1f67d9f6a);
        perform(0x139f47d1f4a);
        perform(0x139f46e1b92);
        perform(0x139fe7f9fea);
        perform(0x139fe7d1fba);
        perform(0x139f67f9ff2);
        perform(0x2ea7c8da372);
        perform(0x2ea769f27d2);
        perform(0x2ea7c9f27ca);
        perform(0x2ea7c9ea7b2);
        perform(0x2ea7c8ea3b2);
        perform(0x2ea7a9ea7aa);
        perform(0x2ea7a9f27d2);
        perform(0x4dafc9da772);
        perform(0x4daf6bf2fd2);
        perform(0x4dafcbf2fca);
        perform(0x4dafcbeafb2);
        perform(0x4dafc9ea7b2);
        perform(0x4dafabeafaa);
        perform(0x4dafabf2fd2);
        perform(0x8bbfcbdaf72);
        perform(0x8bbf6ff3fd2);
        perform(0x8bbfcff3fca);
        perform(0x8bbfcfebfb2);
        perform(0x8bbfcbeafb2);
        perform(0x8bbfafebfaa);
        perform(0x8bbfaff3fd2);
        perform(0x1bdfcfdbf72);
        perform(0x1bdf77f5fd2);
        perform(0x1bdfd7f5fca);
        perform(0x1bdfd7edfb2);
        perform(0x1bdfcfebfb2);
        perform(0x1bdfb7edfaa);
        perform(0x1bdfb7f5fd2);
        perform(0x1bdfc7d9f72);
        perform(0x1bdf77f5fd2);
        perform(0x1bdfd7f5fca);
        perform(0x1bdfd7edfb2);
        perform(0x1bdfc7e9fb2);
        perform(0x1bdfb7edfaa);
        perform(0x1bdfb7f5fd2);
        perform(0x17bfc7d9f72);
        perform(0x17bf6ff3fd2);
        perform(0x17bfcff3fca);
        perform(0x17bfcfebfb2);
        perform(0x17bfc7e9fb2);
        perform(0x17bfafebfaa);
        perform(0x17bfaff3fd2);
        perform(0x8dafc7d9f72);
        perform(0x8daf6bf2fd2);
        perform(0x8dafcbf2fca);
        perform(0x8dafcbeafb2);
        perform(0x8dafc7e9fb2);
        perform(0x8dafabeafaa);
        perform(0x8dafabf2fd2);
        perform(0x4ea7c7d9f72);
        perform(0x4ea769f27d2);
        perform(0x4ea7c9f27ca);
        perform(0x4ea7c9ea7b2);
        perform(0x4ea7c7e9fb2);
        perform(0x4ea7a9ea7aa);
        perform(0x4ea7a9f27d2);
        perform(0x2f23c7d9f72);
        perform(0x2f2368f23d2);
        perform(0x2f23c8f23ca);
        perform(0x2f23c8ea3b2);
        perform(0x2f23c7e9fb2);
        perform(0x2f23a8ea3aa);
        perform(0x2f23a8f23d2);
        perform(0x1f1fc7f1fca);
        perform(0x139fc7d1f52);
        perform(0x2f23c7d9f72);
        perform(0x2ea7c8da372);
        perform(0x1f7bfeffbea);
        perform(0x1f7bfedfb72);
        perform(0x1f1fa7e9faa);
        perform(0x1f1fa7e1f92);
        perform(0x1f1f67d9f6a);
        perform(0x1f1f67f1fd2);
        perform(0x1f1f47d1f4a);
        perform(0x1f1f47f1f9a);
        perform(0x1f1f27c9f2a);
        perform(0x1f1f27d9fba);
        perform(0x1f1f87e1f8a);
        perform(0x1f1f87c9f5a);
        perform(0x1f7bdef7bca);
        perform(0x1f7bdee7bfa);
        perform(0x1f7b9ee7b8a);
        perform(0x1f7b9ef7bd2);
        perform(0x1fa4090240a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fa7c9f27ca);
        perform(0x3f27c7e1f92);
        perform(0x3fabc8e2392);
        perform(0x3eafc9e2792);
        perform(0x1fa409f27d2 | (regZ << 25));
        perform(0x1487e1f87e2);
        perform(0x1087e1f87ea);
        perform(0x1423e8fa3ea);
        perform(0x14a7e9fa7ea);
        perform(0x14a7a9ea7a2);
        perform(0x1407a1e87aa);
        perform(0x140761d876a);
        perform(0x14076100412 | (regX << 5) | (regX << 15));
        perform(0x1407a1d8772);
        perform(0x148741d074a);
        perform(0x148741e87fa);
        perform(0x1487c1f07ca);
        perform(0x1487c1d0752);
        perform(0x148721c872a);
        perform(0x148721f87f2);
        perform(0x148701c070a);
        perform(0x148701e87b2);
        perform(0x1486e1b86ea);
        perform(0x1486e1c073a);
        perform(0x148721c872a);
        perform(0x148721b86f2);
        perform(0x108701c070a);
        perform(0x108700f03d2);
        perform(0x108781e078a);
        perform(0x108781c075a);
        perform(0x108721e0792);
        perform(0x248fc2c8b32);
        perform(0x248f23f0fd2);
        perform(0x248fc3f0fca);
        perform(0x248fc3d0f52);
        perform(0x248fc2d0b52);
        perform(0x248f43d0f4a);
        perform(0x248f43f0fd2);
        perform(0x4497c3c8f32);
        perform(0x449725f17d2);
        perform(0x4497c5f17ca);
        perform(0x4497c5d1752);
        perform(0x4497c3d0f52);
        perform(0x449745d174a);
        perform(0x449745f17d2);
        perform(0x14a7c5c9732);
        perform(0x14a729f27d2);
        perform(0x14a7c9f27ca);
        perform(0x14a7c9d2752);
        perform(0x14a7c5d1752);
        perform(0x14a749d274a);
        perform(0x14a749f27d2);
        perform(0x14a7c1c8732);
        perform(0x14a729f27d2);
        perform(0x14a7c9f27ca);
        perform(0x14a7c9d2752);
        perform(0x14a7c1d0752);
        perform(0x14a749d274a);
        perform(0x14a749f27d2);
        perform(0x1297c1c8732);
        perform(0x129725f17d2);
        perform(0x1297c5f17ca);
        perform(0x1297c5d1752);
        perform(0x1297c1d0752);
        perform(0x129745d174a);
        perform(0x129745f17d2);
        perform(0x438fc1c8732);
        perform(0x438f23f0fd2);
        perform(0x438fc3f0fca);
        perform(0x438fc3d0f52);
        perform(0x438fc1d0752);
        perform(0x438f43d0f4a);
        perform(0x438f43f0fd2);
        perform(0x240bc1c8732);
        perform(0x240b22f0bd2);
        perform(0x240bc2f0bca);
        perform(0x240bc2d0b52);
        perform(0x240bc1d0752);
        perform(0x240b42d0b4a);
        perform(0x240b42f0bd2);
        perform(0x1487c1f07ca);
        perform(0x1087c1c0712);
        perform(0x240bc1c8732);
        perform(0x248fc2c8b32);
        perform(0x148741d074a);
        perform(0x148741e87fa);
        perform(0x148721c872a);
        perform(0x148721f875a);
        perform(0x148701c070a);
        perform(0x148701e875a);
        perform(0x1487e1f87ea);
        perform(0x1487e1c073a);
        perform(0x148741d074a);
        perform(0x148741f07fa);
        perform(0x148721c872a);
        perform(0x148721f875a);
        perform(0x148701c070a);
        perform(0x148701f075a);
        perform(0x1487e1f87ea);
        perform(0x1487e1c073a);
        perform(0x1407a1e87aa);
        perform(0x140761d876a);
        perform(0x14076100412 | (regY << 5) | (regY << 15));
        perform(0x1407a1d8772);
        perform(0x148741d074a);
        perform(0x148741e87fa);
        perform(0x1487c1f07ca);
        perform(0x1487c1d0752);
        perform(0x148721c872a);
        perform(0x148721f87f2);
        perform(0x148701c070a);
        perform(0x148701e87b2);
        perform(0x1486e1b86ea);
        perform(0x1486e1c073a);
        perform(0x148721c872a);
        perform(0x148721b86f2);
        perform(0x108701c070a);
        perform(0x10871effbf2);
        perform(0x108781e078a);
        perform(0x108781c075a);
        perform(0x108721e0792);
        perform(0x248fc2c8b32);
        perform(0x248f23f0fd2);
        perform(0x248fc3f0fca);
        perform(0x248fc3d0f52);
        perform(0x248fc2d0b52);
        perform(0x248f43d0f4a);
        perform(0x248f43f0fd2);
        perform(0x4497c3c8f32);
        perform(0x449725f17d2);
        perform(0x4497c5f17ca);
        perform(0x4497c5d1752);
        perform(0x4497c3d0f52);
        perform(0x449745d174a);
        perform(0x449745f17d2);
        perform(0x14a7c5c9732);
        perform(0x14a729f27d2);
        perform(0x14a7c9f27ca);
        perform(0x14a7c9d2752);
        perform(0x14a7c5d1752);
        perform(0x14a749d274a);
        perform(0x14a749f27d2);
        perform(0x14a7c1c8732);
        perform(0x14a729f27d2);
        perform(0x14a7c9f27ca);
        perform(0x14a7c9d2752);
        perform(0x14a7c1d0752);
        perform(0x14a749d274a);
        perform(0x14a749f27d2);
        perform(0x1297c1c8732);
        perform(0x129725f17d2);
        perform(0x1297c5f17ca);
        perform(0x1297c5d1752);
        perform(0x1297c1d0752);
        perform(0x129745d174a);
        perform(0x129745f17d2);
        perform(0x438fc1c8732);
        perform(0x438f23f0fd2);
        perform(0x438fc3f0fca);
        perform(0x438fc3d0f52);
        perform(0x438fc1d0752);
        perform(0x438f43d0f4a);
        perform(0x438f43f0fd2);
        perform(0x240bc1c8732);
        perform(0x240b22f0bd2);
        perform(0x240bc2f0bca);
        perform(0x240bc2d0b52);
        perform(0x240bc1d0752);
        perform(0x240b42d0b4a);
        perform(0x240b42f0bd2);
        perform(0x1487c1f07ca);
        perform(0x1087c1c0712);
        perform(0x240bc1c8732);
        perform(0x248fc2c8b32);
        perform(0x148741d074a);
        perform(0x148741e87fa);
        perform(0x148721c872a);
        perform(0x148721f875a);
        perform(0x148701c070a);
        perform(0x148701e875a);
        perform(0x1487e1f87ea);
        perform(0x1487e1c073a);
        perform(0x148741d074a);
        perform(0x148741f07fa);
        perform(0x148721c872a);
        perform(0x148721f875a);
        perform(0x148701c070a);
        perform(0x148701f075a);
        perform(0x1487e1f87ea);
        perform(0x1487e1c073a);
        perform(0x1003e0f83ea);
        perform(0x1003e000012 | (regX << 5) | (regX << 15));
        perform(0x1003c0f03ca);
        perform(0x1003c000012 | (regY << 5) | (regY << 15));
        perform(0x1003a0e83aa);
        perform(0x1003a00001a | (regX << 5) | (regY << 15));
        perform(0x100380e038a);
        perform(0x100380f03fa);
        perform(0x1000000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x100000e03ba | (regZ << 25));
        perform(0x14a7c9f27ca);
        perform(0x14a7dee7b92);
        perform(0x14a7a9ea7aa);
        perform(0x14a7a9f27fa);
        perform(0x1003e0f83ea);
        perform(0x1003e9ea7b2);
        perform(0x1087e0f83f2);
        perform(0x110be0f83f2);
        perform(0x118fe0f83f2);
        perform(0x1213e0f83f2);
        perform(0x1297e0f83f2);
        perform(0x131be0f83f2);
        perform(0x139fe0f83f2);
        perform(0x1423e0f83f2);
        perform(0x14a7e0f83f2);
        perform(0x14a400f83f2 | (regZ << 25));
        perform(0x152800f83f2 | (regZ << 25));
        perform(0x15ac00f83f2 | (regZ << 25));
        perform(0x163000f83f2 | (regZ << 25));
        perform(0x16b400f83f2 | (regZ << 25));
        perform(0x173800f83f2 | (regZ << 25));
        perform(0x17bc00f83f2 | (regZ << 25));
        perform(0x184000f83f2 | (regZ << 25));
        perform(0x18c400f83f2 | (regZ << 25));
        perform(0x194800f83f2 | (regZ << 25));
        perform(0x19cc00f83f2 | (regZ << 25));
        perform(0x1a5000f83f2 | (regZ << 25));
        perform(0x1ad400f83f2 | (regZ << 25));
        perform(0x1b5800f83f2 | (regZ << 25));
        perform(0x1bdc00f83f2 | (regZ << 25));
        perform(0x1c6000f83f2 | (regZ << 25));
        perform(0x1ce400f83f2 | (regZ << 25));
        perform(0x1d6800f83f2 | (regZ << 25));
        perform(0x1dec00f83f2 | (regZ << 25));
        perform(0x1e7000f83f2 | (regZ << 25));
        perform(0x1ef400f83f2 | (regZ << 25));
        perform(0x1f7800f83f2 | (regZ << 25));
        perform(0x1ffc00f83f2 | (regZ << 25));
        perform(0x100000f83f2 | (regZ << 25));
        perform(0x1407c1f07ca);
        perform(0x1404010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1407c1f87f2);
        perform(0x140401f07d2 | (regZ << 25));
        perform(0x1f83e0f83ea);
        perform(0x1fffe000012 | (regX << 5) | (regX << 15));
        perform(0x1003e902412 | (regX << 5) | (regX << 15));
        perform(0x1087ea02812 | (regX << 5) | (regX << 15));
        perform(0x110beb02c12 | (regX << 5) | (regX << 15));
        perform(0x118fec03012 | (regX << 5) | (regX << 15));
        perform(0x1213ed03412 | (regX << 5) | (regX << 15));
        perform(0x1297ee03812 | (regX << 5) | (regX << 15));
        perform(0x131bef03c12 | (regX << 5) | (regX << 15));
        perform(0x139ff004012 | (regX << 5) | (regX << 15));
        perform(0x1423f104412 | (regX << 5) | (regX << 15));
        perform(0x14a7f204812 | (regX << 5) | (regX << 15));
        perform(0x152bf304c12 | (regX << 5) | (regX << 15));
        perform(0x15aff405012 | (regX << 5) | (regX << 15));
        perform(0x1633f505412 | (regX << 5) | (regX << 15));
        perform(0x16b7f605812 | (regX << 5) | (regX << 15));
        perform(0x173bf705c12 | (regX << 5) | (regX << 15));
        perform(0x17bff806012 | (regX << 5) | (regX << 15));
        perform(0x1843f906412 | (regX << 5) | (regX << 15));
        perform(0x18c7fa06812 | (regX << 5) | (regX << 15));
        perform(0x194bfb06c12 | (regX << 5) | (regX << 15));
        perform(0x19cffc07012 | (regX << 5) | (regX << 15));
        perform(0x1a53fd07412 | (regX << 5) | (regX << 15));
        perform(0x1ad7fe07812 | (regX << 5) | (regX << 15));
        perform(0x1b5bff07c12 | (regX << 5) | (regX << 15));
        perform(0x1bdfe100412 | (regX << 5) | (regX << 15));
        perform(0x1c63e200812 | (regX << 5) | (regX << 15));
        perform(0x1ce7e300c12 | (regX << 5) | (regX << 15));
        perform(0x1d6be401012 | (regX << 5) | (regX << 15));
        perform(0x1defe501412 | (regX << 5) | (regX << 15));
        perform(0x1e73e601812 | (regX << 5) | (regX << 15));
        perform(0x1ef7e701c12 | (regX << 5) | (regX << 15));
        perform(0x1f7be802012 | (regX << 5) | (regX << 15));
        perform(0x1f80000000a | (regX << 5) | (regX << 15) | (regX << 25));
        perform(0x1f8000f83f2 | (regX << 25));
        perform(0x1f83e0f83ea);
        perform(0x1fffe000012 | (regY << 5) | (regY << 15));
        perform(0x1003e902412 | (regY << 5) | (regY << 15));
        perform(0x1087ea02812 | (regY << 5) | (regY << 15));
        perform(0x110beb02c12 | (regY << 5) | (regY << 15));
        perform(0x118fec03012 | (regY << 5) | (regY << 15));
        perform(0x1213ed03412 | (regY << 5) | (regY << 15));
        perform(0x1297ee03812 | (regY << 5) | (regY << 15));
        perform(0x131bef03c12 | (regY << 5) | (regY << 15));
        perform(0x139ff004012 | (regY << 5) | (regY << 15));
        perform(0x1423f104412 | (regY << 5) | (regY << 15));
        perform(0x14a7f204812 | (regY << 5) | (regY << 15));
        perform(0x152bf304c12 | (regY << 5) | (regY << 15));
        perform(0x15aff405012 | (regY << 5) | (regY << 15));
        perform(0x1633f505412 | (regY << 5) | (regY << 15));
        perform(0x16b7f605812 | (regY << 5) | (regY << 15));
        perform(0x173bf705c12 | (regY << 5) | (regY << 15));
        perform(0x17bff806012 | (regY << 5) | (regY << 15));
        perform(0x1843f906412 | (regY << 5) | (regY << 15));
        perform(0x18c7fa06812 | (regY << 5) | (regY << 15));
        perform(0x194bfb06c12 | (regY << 5) | (regY << 15));
        perform(0x19cffc07012 | (regY << 5) | (regY << 15));
        perform(0x1a53fd07412 | (regY << 5) | (regY << 15));
        perform(0x1ad7fe07812 | (regY << 5) | (regY << 15));
        perform(0x1b5bff07c12 | (regY << 5) | (regY << 15));
        perform(0x1bdfe100412 | (regY << 5) | (regY << 15));
        perform(0x1c63e200812 | (regY << 5) | (regY << 15));
        perform(0x1ce7e300c12 | (regY << 5) | (regY << 15));
        perform(0x1d6be401012 | (regY << 5) | (regY << 15));
        perform(0x1defe501412 | (regY << 5) | (regY << 15));
        perform(0x1e73e601812 | (regY << 5) | (regY << 15));
        perform(0x1ef7e701c12 | (regY << 5) | (regY << 15));
        perform(0x1f7be802012 | (regY << 5) | (regY << 15));
        perform(0x1f80000000a | (regY << 5) | (regY << 15) | (regY << 25));
        perform(0x1f8000f83f2 | (regY << 25));
        perform(0x1f83e0f83ea);
        perform(0x1fffe000012 | (regZ << 5) | (regZ << 15));
        perform(0x1003e902412 | (regZ << 5) | (regZ << 15));
        perform(0x1087ea02812 | (regZ << 5) | (regZ << 15));
        perform(0x110beb02c12 | (regZ << 5) | (regZ << 15));
        perform(0x118fec03012 | (regZ << 5) | (regZ << 15));
        perform(0x1213ed03412 | (regZ << 5) | (regZ << 15));
        perform(0x1297ee03812 | (regZ << 5) | (regZ << 15));
        perform(0x131bef03c12 | (regZ << 5) | (regZ << 15));
        perform(0x139ff004012 | (regZ << 5) | (regZ << 15));
        perform(0x1423f104412 | (regZ << 5) | (regZ << 15));
        perform(0x14a7f204812 | (regZ << 5) | (regZ << 15));
        perform(0x152bf304c12 | (regZ << 5) | (regZ << 15));
        perform(0x15aff405012 | (regZ << 5) | (regZ << 15));
        perform(0x1633f505412 | (regZ << 5) | (regZ << 15));
        perform(0x16b7f605812 | (regZ << 5) | (regZ << 15));
        perform(0x173bf705c12 | (regZ << 5) | (regZ << 15));
        perform(0x17bff806012 | (regZ << 5) | (regZ << 15));
        perform(0x1843f906412 | (regZ << 5) | (regZ << 15));
        perform(0x18c7fa06812 | (regZ << 5) | (regZ << 15));
        perform(0x194bfb06c12 | (regZ << 5) | (regZ << 15));
        perform(0x19cffc07012 | (regZ << 5) | (regZ << 15));
        perform(0x1a53fd07412 | (regZ << 5) | (regZ << 15));
        perform(0x1ad7fe07812 | (regZ << 5) | (regZ << 15));
        perform(0x1b5bff07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1bdfe100412 | (regZ << 5) | (regZ << 15));
        perform(0x1c63e200812 | (regZ << 5) | (regZ << 15));
        perform(0x1ce7e300c12 | (regZ << 5) | (regZ << 15));
        perform(0x1d6be401012 | (regZ << 5) | (regZ << 15));
        perform(0x1defe501412 | (regZ << 5) | (regZ << 15));
        perform(0x1e73e601812 | (regZ << 5) | (regZ << 15));
        perform(0x1ef7e701c12 | (regZ << 5) | (regZ << 15));
        perform(0x1f7be802012 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000f83f2 | (regZ << 25));
    }

    template <>
    void divide<int>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1fffdff7fca);
        perform(0x1fffdf07c12 | (regX << 5) | (regX << 15));
        perform(0x1fffbfeffaa);
        perform(0x1fffbf07c12 | (regY << 5) | (regY << 15));
        perform(0x1fff9fe7f8a);
        perform(0x1fff9f07c1a | (regX << 5) | (regY << 15));
        perform(0x1fff7fdff6a);
        perform(0x1fff7feffda);
        perform(0x1ffffffffea);
        perform(0x1fffffdff9a);
        perform(0x1f83a0e83aa);
        perform(0x1f8380e038a);
        perform(0x10039f07c12 | (regX << 5) | (regX << 15));
        perform(0x1003a0e0392);
        perform(0x184380e83b2);
        perform(0x1843b0e4392);
        perform(0x10c2380e83b2);
        perform(0x10c23a8e2392);
        perform(0x8e1380e83b2);
        perform(0x8e13a4e1392);
        perform(0x4f0b80e83b2);
        perform(0x4f0ba2e0b92);
        perform(0x2f8780e83b2);
        perform(0x2f87a1e0792);
        perform(0x1f8360d836a);
        perform(0x1f836000012 | (regX << 5) | (regX << 15));
        perform(0x1f8340d034a);
        perform(0x1f8340003ba | (regX << 15));
        perform(0x1f8320c832a);
        perform(0x1f8320d839a);
        perform(0x1f83c0f03ca);
        perform(0x1f83c0c835a);
        perform(0x1f8360d836a);
        perform(0x1f8360f03d2);
        perform(0x1f8380e038a);
        perform(0x1f8380d8372);
        perform(0x1f8340d034a);
        perform(0x100300c030a);
        perform(0x10031feffb2);
        perform(0x100320c832a);
        perform(0x100320c037a);
        perform(0x100340c8332);
        perform(0x2f0b81d0752);
        perform(0x2f0b42e0b92);
        perform(0x2f0b82e0b8a);
        perform(0x2f0b82d8b72);
        perform(0x2f0b81d8772);
        perform(0x2f0b62d8b6a);
        perform(0x2f0b62e0b92);
        perform(0x4e1382d0b52);
        perform(0x4e1344e1392);
        perform(0x4e1384e138a);
        perform(0x4e1384d9372);
        perform(0x4e1382d8b72);
        perform(0x4e1364d936a);
        perform(0x4e1364e1392);
        perform(0x8c2384d1352);
        perform(0x8c2348e2392);
        perform(0x8c2388e238a);
        perform(0x8c2388da372);
        perform(0x8c2384d9372);
        perform(0x8c2368da36a);
        perform(0x8c2368e2392);
        perform(0x184388d2352);
        perform(0x184350e4392);
        perform(0x184390e438a);
        perform(0x184390dc372);
        perform(0x184388da372);
        perform(0x184370dc36a);
        perform(0x184370e4392);
        perform(0x184380d0352);
        perform(0x184350e4392);
        perform(0x184390e438a);
        perform(0x184390dc372);
        perform(0x184380d8372);
        perform(0x184370dc36a);
        perform(0x184370e4392);
        perform(0x10c2380d0352);
        perform(0x10c2348e2392);
        perform(0x10c2388e238a);
        perform(0x10c2388da372);
        perform(0x10c2380d8372);
        perform(0x10c2368da36a);
        perform(0x10c2368e2392);
        perform(0x8e1380d0352);
        perform(0x8e1344e1392);
        perform(0x8e1384e138a);
        perform(0x8e1384d9372);
        perform(0x8e1380d8372);
        perform(0x8e1364d936a);
        perform(0x8e1364e1392);
        perform(0x4f0b80d0352);
        perform(0x4f0b42e0b92);
        perform(0x4f0b82e0b8a);
        perform(0x4f0b82d8b72);
        perform(0x4f0b80d8372);
        perform(0x4f0b62d8b6a);
        perform(0x4f0b62e0b92);
        perform(0x2f8780d0352);
        perform(0x2f8741e0792);
        perform(0x2f8781e078a);
        perform(0x2f8781d8772);
        perform(0x2f8780d8372);
        perform(0x2f8761d876a);
        perform(0x2f8761e0792);
        perform(0x1f8380e038a);
        perform(0x100380c0312);
        perform(0x2f8780d0352);
        perform(0x2f0b81d0752);
        perform(0x1f8360d836a);
        perform(0x1f8360f03d2);
        perform(0x1f8340d034a);
        perform(0x1f8340e0392);
        perform(0x1f8320c832a);
        perform(0x1f8320e03da);
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f83c0f03ca);
        perform(0x1f83c0c033a);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10037f07c12 | (regY << 5) | (regY << 15));
        perform(0x100380d8372);
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0c033a);
        perform(0x1f8340d034a);
        perform(0x1f8340e83b2);
        perform(0x1f8360d836a);
        perform(0x1f8360d0352);
        perform(0x1f8320c832a);
        perform(0x1002e0b82ea);
        perform(0x1002ffe7f92);
        perform(0x100300c030a);
        perform(0x100300b835a);
        perform(0x100320c0312);
        perform(0x2f0b61c8732);
        perform(0x2f0b22d8b72);
        perform(0x2f0b62d8b6a);
        perform(0x2f0b62d0b52);
        perform(0x2f0b61d0752);
        perform(0x2f0b42d0b4a);
        perform(0x2f0b42d8b72);
        perform(0x4e1362c8b32);
        perform(0x4e1324d9372);
        perform(0x4e1364d936a);
        perform(0x4e1364d1352);
        perform(0x4e1362d0b52);
        perform(0x4e1344d134a);
        perform(0x4e1344d9372);
        perform(0x8c2364c9332);
        perform(0x8c2328da372);
        perform(0x8c2368da36a);
        perform(0x8c2368d2352);
        perform(0x8c2364d1352);
        perform(0x8c2348d234a);
        perform(0x8c2348da372);
        perform(0x184368ca332);
        perform(0x184330dc372);
        perform(0x184370dc36a);
        perform(0x184370d4352);
        perform(0x184368d2352);
        perform(0x184350d434a);
        perform(0x184350dc372);
        perform(0x184360c8332);
        perform(0x184330dc372);
        perform(0x184370dc36a);
        perform(0x184370d4352);
        perform(0x184360d0352);
        perform(0x184350d434a);
        perform(0x184350dc372);
        perform(0x10c2360c8332);
        perform(0x10c2328da372);
        perform(0x10c2368da36a);
        perform(0x10c2368d2352);
        perform(0x10c2360d0352);
        perform(0x10c2348d234a);
        perform(0x10c2348da372);
        perform(0x8e1360c8332);
        perform(0x8e1324d9372);
        perform(0x8e1364d936a);
        perform(0x8e1364d1352);
        perform(0x8e1360d0352);
        perform(0x8e1344d134a);
        perform(0x8e1344d9372);
        perform(0x4f0b60c8332);
        perform(0x4f0b22d8b72);
        perform(0x4f0b62d8b6a);
        perform(0x4f0b62d0b52);
        perform(0x4f0b60d0352);
        perform(0x4f0b42d0b4a);
        perform(0x4f0b42d8b72);
        perform(0x2f8760c8332);
        perform(0x2f8721d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761d0752);
        perform(0x2f8760d0352);
        perform(0x2f8741d074a);
        perform(0x2f8741d8772);
        perform(0x1f8360d836a);
        perform(0x100360b82f2);
        perform(0x2f8760c8332);
        perform(0x2f0b61c8732);
        perform(0x1f8340d034a);
        perform(0x1f8340e83b2);
        perform(0x1f8320c832a);
        perform(0x1f8320d8372);
        perform(0x1f8300c030a);
        perform(0x1f8300d83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c835a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b831a);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10039ff7fd2);
        perform(0x1f8360e0392);
        perform(0x1f8781e0782);
        perform(0x1fff5fd7f4a);
        perform(0x1fff3fcff2a);
        perform(0x1fff5fcff32);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8300c0302);
        perform(0x100380e038a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1ffc1fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10033ef7bd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1f781fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10033df77d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031e07812 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1ef41fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10033cf73d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031d07412 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1e701fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10033bf6fd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031c07012 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1dec1fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10033af6bd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031b06c12 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1d681fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100339f67d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031a06812 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1ce41fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100338f63d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031906412 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1c601fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100337f5fd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031806012 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1bdc1fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100336f5bd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031705c12 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1b581fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100335f57d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031605812 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1ad41fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100334f53d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031505412 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x1a501fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100333f4fd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031405012 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x19cc1fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100332f4bd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031304c12 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x19481fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100331f47d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031204812 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x18c41fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100330f43d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031104412 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x18401fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10032ff3fd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10031004012 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x17bc1fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10032ef3bd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030f03c12 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x17381fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10032df37d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030e03812 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x16b41fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10032cf33d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030d03412 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x16301fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10032bf2fd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030c03012 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x15ac1fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x10032af2bd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030b02c12 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x15281fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100329f27d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030a02812 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x14a41fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100328f23d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030902412 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x14201fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100327f1fd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030802012 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x139c1fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100326f1bd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030701c12 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x13181fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100325f17d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030601812 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x12941fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100324f13d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030501412 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x12101fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100323f0fd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030401012 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x118c1fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100322f0bd2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030300c12 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x11081fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100321f07d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030200812 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x10841fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f8320c832a);
        perform(0x2f8720e0392);
        perform(0x2f0b21e0792);
        perform(0x1f8380e038a);
        perform(0x1f8781c8732);
        perform(0x1f8320c832a);
        perform(0x2f8720d8372);
        perform(0x2f0b21d8772);
        perform(0x100320f03d2);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8320c832a);
        perform(0x1f8300c030a);
        perform(0x10030100412 | (regZ << 5) | (regZ << 15));
        perform(0x100320c0312);
        perform(0x100380c0312);
        perform(0x184300c8332);
        perform(0x184330c4312);
        perform(0x10c2300c8332);
        perform(0x10c2328c2312);
        perform(0x8e1300c8332);
        perform(0x8e1324c1312);
        perform(0x4f0b00c8332);
        perform(0x4f0b22c0b12);
        perform(0x2f8700c8332);
        perform(0x2f8721c0712);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0e83b2);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e833a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300a82da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0b037a);
        perform(0x1f8280a028a);
        perform(0x1f8280b039a);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a09831a);
        perform(0x1f8781e078a);
        perform(0x100380e0382);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeda);
        perform(0x2f8780a82da);
        perform(0x2f0b81a86da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0982ba);
        perform(0x1f8280a028a);
        perform(0x1f8280a831a);
        perform(0x1f8360d836a);
        perform(0x1f8360a02da);
        perform(0x1f82c0b02ca);
        perform(0x1f82c0e037a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x1f82a0a82aa);
        perform(0x1f82a0d8372);
        perform(0x1f8280a028a);
        perform(0x1f8280e0392);
        perform(0x1f82609826a);
        perform(0x1f8260a02ba);
        perform(0x1f82a0a82aa);
        perform(0x1f82a098272);
        perform(0x2f8700a82b2);
        perform(0x2f86a1c0712);
        perform(0x2f8701c070a);
        perform(0x2f8701b06d2);
        perform(0x2f8700b02d2);
        perform(0x2f86c1b06ca);
        perform(0x2f86c1c0712);
        perform(0x4f8f01a86b2);
        perform(0x4f8ea3c0f12);
        perform(0x4f8f03c0f0a);
        perform(0x4f8f03b0ed2);
        perform(0x4f8f01b06d2);
        perform(0x4f8ec3b0eca);
        perform(0x4f8ec3c0f12);
        perform(0x8f9f03a8eb2);
        perform(0x8f9ea7c1f12);
        perform(0x8f9f07c1f0a);
        perform(0x8f9f07b1ed2);
        perform(0x8f9f03b0ed2);
        perform(0x8f9ec7b1eca);
        perform(0x8f9ec7c1f12);
        perform(0x10fbf07a9eb2);
        perform(0x10fbeafc3f12);
        perform(0x10fbf0fc3f0a);
        perform(0x10fbf0fb3ed2);
        perform(0x10fbf07b1ed2);
        perform(0x10fbecfb3eca);
        perform(0x10fbecfc3f12);
        perform(0x1fff0fabeb2);
        perform(0x1ffebfc7f12);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fb7ed2);
        perform(0x1fff0fb3ed2);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f12);
        perform(0x1f775dd774a);
        perform(0x1ef75fafeb2);
        perform(0x1f773dcf72a);
        perform(0x1ef73fbfef2);
        perform(0x1f7b5fdff72);
        perform(0x1f7b3fe7f92);
        perform(0x1ff71dc770a);
        perform(0x1ff71dcf75a);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdd771a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddcf71a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73db76fa);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dcf732);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fcff5a);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfc7f3a);
        perform(0x10001fb7efa | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ecfb32);
        perform(0x1f03e0f83ea);
        perform(0x1f8380e038a);
        perform(0x10039fffff2);
        perform(0x1003e0e0392);
        perform(0x184380f83f2);
        perform(0x1843f0e4392);
        perform(0x10c2380f83f2);
        perform(0x10c23e8e2392);
        perform(0x8e1380f83f2);
        perform(0x8e13e4e1392);
        perform(0x4f0b80f83f2);
        perform(0x4f0be2e0b92);
        perform(0x2f8780f83f2);
        perform(0x2f87e1e0792);
        perform(0x1f8360d836a);
        perform(0x1f836000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f8340d034a);
        perform(0x1f8340f83f2);
        perform(0x1f8320c832a);
        perform(0x1f8320f801a | (regZ << 5));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000c033a | (regZ << 25));
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360d0352);
        perform(0x1f8320c832a);
        perform(0x1002e0b82ea);
        perform(0x1002ffffff2);
        perform(0x100300c030a);
        perform(0x100300b835a);
        perform(0x100320c0312);
        perform(0x2f0b61c8732);
        perform(0x2f0b22d8b72);
        perform(0x2f0b62d8b6a);
        perform(0x2f0b62d0b52);
        perform(0x2f0b61d0752);
        perform(0x2f0b42d0b4a);
        perform(0x2f0b42d8b72);
        perform(0x4e1362c8b32);
        perform(0x4e1324d9372);
        perform(0x4e1364d936a);
        perform(0x4e1364d1352);
        perform(0x4e1362d0b52);
        perform(0x4e1344d134a);
        perform(0x4e1344d9372);
        perform(0x8c2364c9332);
        perform(0x8c2328da372);
        perform(0x8c2368da36a);
        perform(0x8c2368d2352);
        perform(0x8c2364d1352);
        perform(0x8c2348d234a);
        perform(0x8c2348da372);
        perform(0x184368ca332);
        perform(0x184330dc372);
        perform(0x184370dc36a);
        perform(0x184370d4352);
        perform(0x184368d2352);
        perform(0x184350d434a);
        perform(0x184350dc372);
        perform(0x184360c8332);
        perform(0x184330dc372);
        perform(0x184370dc36a);
        perform(0x184370d4352);
        perform(0x184360d0352);
        perform(0x184350d434a);
        perform(0x184350dc372);
        perform(0x10c2360c8332);
        perform(0x10c2328da372);
        perform(0x10c2368da36a);
        perform(0x10c2368d2352);
        perform(0x10c2360d0352);
        perform(0x10c2348d234a);
        perform(0x10c2348da372);
        perform(0x8e1360c8332);
        perform(0x8e1324d9372);
        perform(0x8e1364d936a);
        perform(0x8e1364d1352);
        perform(0x8e1360d0352);
        perform(0x8e1344d134a);
        perform(0x8e1344d9372);
        perform(0x4f0b60c8332);
        perform(0x4f0b22d8b72);
        perform(0x4f0b62d8b6a);
        perform(0x4f0b62d0b52);
        perform(0x4f0b60d0352);
        perform(0x4f0b42d0b4a);
        perform(0x4f0b42d8b72);
        perform(0x2f8760c8332);
        perform(0x2f8721d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761d0752);
        perform(0x2f8760d0352);
        perform(0x2f8741d074a);
        perform(0x2f8741d8772);
        perform(0x1f8360d836a);
        perform(0x100360b82f2);
        perform(0x2f8760c8332);
        perform(0x2f0b61c8732);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f8320c832a);
        perform(0x1f8320d8372);
        perform(0x1f8300c030a);
        perform(0x1f8300d801a | (regZ << 5));
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c835a);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000b831a | (regZ << 25));
        perform(0x1f83a0e83aa);
        perform(0x1f83a000012 | (regY << 5) | (regY << 15));
        perform(0x1f8360d836a);
        perform(0x2f0360e83b2);
        perform(0x2f87a0d8372);
        perform(0x4e8761e87b2);
        perform(0x4f8fa1d8772);
        perform(0x8d8f63e8fb2);
        perform(0x8f9fa3d8f72);
        perform(0x10b9f67e9fb2);
        perform(0x10fbfa7d9f72);
        perform(0x17bf6febfb2);
        perform(0x1fffafdbf72);
        perform(0x1003c0f03ca);
        perform(0x1003dfeffb2);
        perform(0x1f83e0f83ea);
        perform(0x1f87c1f07ca);
        perform(0x1003e0f03d2);
        perform(0x1843c0f83f2);
        perform(0x1843f0f43d2);
        perform(0x10c23c0f83f2);
        perform(0x10c23e8f23d2);
        perform(0x8e13c0f83f2);
        perform(0x8e13e4f13d2);
        perform(0x4f0bc0f83f2);
        perform(0x4f0be2f0bd2);
        perform(0x2f87c0f83f2);
        perform(0x2f87e1f07d2);
        perform(0x1fffbfeffaa);
        perform(0x1fffbfffc1a | (regZ << 5));
        perform(0x1ffc1f07c0a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1ffc1feffb2 | (regZ << 25));
        perform(0x1f0000f83f2 | (regZ << 25));
    }

    template <>
    void divide<float>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1003ff07c12 | (regX << 5) | (regX << 15));
        perform(0x14a7e000012 | (regX << 5) | (regX << 15));
        perform(0x152be100412 | (regX << 5) | (regX << 15));
        perform(0x15afe200812 | (regX << 5) | (regX << 15));
        perform(0x1633e300c12 | (regX << 5) | (regX << 15));
        perform(0x16b7e401012 | (regX << 5) | (regX << 15));
        perform(0x173be501412 | (regX << 5) | (regX << 15));
        perform(0x17bfe601812 | (regX << 5) | (regX << 15));
        perform(0x1843e701c12 | (regX << 5) | (regX << 15));
        perform(0x18c7e802012 | (regX << 5) | (regX << 15));
        perform(0x194be902412 | (regX << 5) | (regX << 15));
        perform(0x19cfea02812 | (regX << 5) | (regX << 15));
        perform(0x1a53eb02c12 | (regX << 5) | (regX << 15));
        perform(0x1ad7ec03012 | (regX << 5) | (regX << 15));
        perform(0x1b5bed03412 | (regX << 5) | (regX << 15));
        perform(0x1bdfee03812 | (regX << 5) | (regX << 15));
        perform(0x1c63ef03c12 | (regX << 5) | (regX << 15));
        perform(0x1ce7f004012 | (regX << 5) | (regX << 15));
        perform(0x1d6bf104412 | (regX << 5) | (regX << 15));
        perform(0x1deff204812 | (regX << 5) | (regX << 15));
        perform(0x1e73f304c12 | (regX << 5) | (regX << 15));
        perform(0x1ef7f405012 | (regX << 5) | (regX << 15));
        perform(0x1f7bf505412 | (regX << 5) | (regX << 15));
        perform(0x1ffff605812 | (regX << 5) | (regX << 15));
        perform(0x1087f705c12 | (regX << 5) | (regX << 15));
        perform(0x110bf806012 | (regX << 5) | (regX << 15));
        perform(0x118ff906412 | (regX << 5) | (regX << 15));
        perform(0x1213fa06812 | (regX << 5) | (regX << 15));
        perform(0x1297fb06c12 | (regX << 5) | (regX << 15));
        perform(0x131bfc07012 | (regX << 5) | (regX << 15));
        perform(0x139ffd07412 | (regX << 5) | (regX << 15));
        perform(0x1423fe07812 | (regX << 5) | (regX << 15));
        perform(0x1f80000000a | (regX << 5) | (regX << 15) | (regX << 25));
        perform(0x1f8000f83f2 | (regX << 25));
        perform(0x1f83e0f83ea);
        perform(0x1003ff07c12 | (regY << 5) | (regY << 15));
        perform(0x14a7e000012 | (regY << 5) | (regY << 15));
        perform(0x152be100412 | (regY << 5) | (regY << 15));
        perform(0x15afe200812 | (regY << 5) | (regY << 15));
        perform(0x1633e300c12 | (regY << 5) | (regY << 15));
        perform(0x16b7e401012 | (regY << 5) | (regY << 15));
        perform(0x173be501412 | (regY << 5) | (regY << 15));
        perform(0x17bfe601812 | (regY << 5) | (regY << 15));
        perform(0x1843e701c12 | (regY << 5) | (regY << 15));
        perform(0x18c7e802012 | (regY << 5) | (regY << 15));
        perform(0x194be902412 | (regY << 5) | (regY << 15));
        perform(0x19cfea02812 | (regY << 5) | (regY << 15));
        perform(0x1a53eb02c12 | (regY << 5) | (regY << 15));
        perform(0x1ad7ec03012 | (regY << 5) | (regY << 15));
        perform(0x1b5bed03412 | (regY << 5) | (regY << 15));
        perform(0x1bdfee03812 | (regY << 5) | (regY << 15));
        perform(0x1c63ef03c12 | (regY << 5) | (regY << 15));
        perform(0x1ce7f004012 | (regY << 5) | (regY << 15));
        perform(0x1d6bf104412 | (regY << 5) | (regY << 15));
        perform(0x1deff204812 | (regY << 5) | (regY << 15));
        perform(0x1e73f304c12 | (regY << 5) | (regY << 15));
        perform(0x1ef7f405012 | (regY << 5) | (regY << 15));
        perform(0x1f7bf505412 | (regY << 5) | (regY << 15));
        perform(0x1ffff605812 | (regY << 5) | (regY << 15));
        perform(0x1087f705c12 | (regY << 5) | (regY << 15));
        perform(0x110bf806012 | (regY << 5) | (regY << 15));
        perform(0x118ff906412 | (regY << 5) | (regY << 15));
        perform(0x1213fa06812 | (regY << 5) | (regY << 15));
        perform(0x1297fb06c12 | (regY << 5) | (regY << 15));
        perform(0x131bfc07012 | (regY << 5) | (regY << 15));
        perform(0x139ffd07412 | (regY << 5) | (regY << 15));
        perform(0x1423fe07812 | (regY << 5) | (regY << 15));
        perform(0x1f80000000a | (regY << 5) | (regY << 15) | (regY << 25));
        perform(0x1f8000f83f2 | (regY << 25));
        perform(0x1fa3e8fa3ea);
        perform(0x1f23c8f23ca);
        perform(0x2f23c902412 | (regX << 5) | (regX << 15));
        perform(0x2ea7ca02812 | (regX << 5) | (regX << 15));
        perform(0x1f23e8f23d2);
        perform(0x1407c1f07ca);
        perform(0x1407c100412 | (regX << 5) | (regX << 15));
        perform(0x1407a1e87aa);
        perform(0x2387a1f07d2);
        perform(0x240bc1e87b2);
        perform(0x430ba2f0bd2);
        perform(0x4413c2e8bb2);
        perform(0x1213a4f13d2);
        perform(0x1423c4e93b2);
        perform(0x1ffffffffea);
        perform(0x1fffe8f23d2);
        perform(0x1fa3c8f23ca);
        perform(0x1f23a8ea3aa);
        perform(0x2f23a902412 | (regY << 5) | (regY << 15));
        perform(0x2ea7aa02812 | (regY << 5) | (regY << 15));
        perform(0x1f23c8ea3b2);
        perform(0x1407a1e87aa);
        perform(0x1407a100412 | (regY << 5) | (regY << 15));
        perform(0x140781e078a);
        perform(0x238781e87b2);
        perform(0x240ba1e0792);
        perform(0x430b82e8bb2);
        perform(0x4413a2e0b92);
        perform(0x121384e93b2);
        perform(0x1423a4e1392);
        perform(0x1fffdff7fca);
        perform(0x1fffc8ea3b2);
        perform(0x1f97a5e97aa);
        perform(0x4c97a8fa3f2);
        perform(0x4d1ba9fa7f2);
        perform(0x4d9faafabf2);
        perform(0x4e23abfaff2);
        perform(0x1f97e5f97ea);
        perform(0x1f97e5e97b2);
        perform(0x1fff9fe7f8a);
        perform(0x1fffbfeffaa);
        perform(0x1f1b86e1b82);
        perform(0x1fffa5f97f2);
        perform(0x1fff9feffb2);
        perform(0x1f9ba6e9baa);
        perform(0x3d9ba8f23d2);
        perform(0x3e1fa9f27d2);
        perform(0x3ea3aaf2bd2);
        perform(0x1f9bc6f1bca);
        perform(0x1f9bc6e9bb2);
        perform(0x1f9b46d1b4a);
        perform(0x1f9b26c9b2a);
        perform(0x131b5fe7f92);
        perform(0x2f9f46f9bf2);
        perform(0x2f2347f9ff2);
        perform(0x1f9b26d1b52);
        perform(0x1f9f67d9f62);
        perform(0x1fff5fd7f4a);
        perform(0x1fff1fc7f0a);
        perform(0x1fff1fffff2);
        perform(0x1fff5fc7f12);
        perform(0x1f9ba6e9baa);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9ae2);
        perform(0x131b66d9b6a);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1fffbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b1ee7b92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131affeffb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1f7bbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b1de7792);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131afeefbb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1ef7bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b1ce7392);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131afdef7b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1e73bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b1be6f92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131afcef3b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1defbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b1ae6b92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131afbeefb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1d6bbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b19e6792);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131afaeebb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1ce7bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b18e6392);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af9ee7b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1c63bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b17e5f92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af8ee3b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1bdfbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b16e5b92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af7edfb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1b5bbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b15e5792);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af6edbb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1ad7bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b14e5392);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af5ed7b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1a53bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b13e4f92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af4ed3b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x19cfbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b12e4b92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af3ecfb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x194bbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b11e4792);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af2ecbb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x18c7bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b10e4392);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af1ec7b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1843bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b0fe3f92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131af0ec3b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x17bfbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b0ee3b92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131aefebfb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x173bbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b0de3792);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131aeeebbb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x16b7bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b0ce3392);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131aedeb7b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1633bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b0be2f92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131aeceb3b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x15afbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b0ae2b92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131aebeafb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x152bbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b09e2792);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131aeaeabb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x14a7bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b08e2392);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131ae9ea7b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x1423bfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b07e1f92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131ae8ea3b2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x139fbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06d9b72);
        perform(0x2f2307d9f72);
        perform(0x1f9b66d9b6a);
        perform(0x1f9f67c1f12);
        perform(0x1f9b06c1b0a);
        perform(0x2f9f06c9b32);
        perform(0x2f2307c9f32);
        perform(0x131b06e1b92);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b26c1b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9ae6b9aea);
        perform(0x131ae7e9fb2);
        perform(0x131b06b9af2);
        perform(0x131b66b9af2);
        perform(0x1b5ae6c1b12);
        perform(0x1b5b16bdaf2);
        perform(0x10f3ae6c1b12);
        perform(0x10f3b0ebbaf2);
        perform(0x8d2ae6c1b12);
        perform(0x8d2b0abaaf2);
        perform(0x4e22e6c1b12);
        perform(0x4e2308ba2f2);
        perform(0x2f9ee6c1b12);
        perform(0x2f9f07b9ef2);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6f1bd2);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6f1b1a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a1aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86a9b3a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a9b7a);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691afa);
        perform(0x1f9f67d9f6a);
        perform(0x131b66d9b62);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfa7eba);
        perform(0x2f9f66a1aba);
        perform(0x2f2367a1eba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa691a9a);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66a1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b2699aba);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a86c9b32);
        perform(0x1f9a6699a6a);
        perform(0x1f9a66d9b72);
        perform(0x1f9a4691a4a);
        perform(0x1f9a4699a9a);
        perform(0x1f9a86a1a8a);
        perform(0x1f9a8691a52);
        perform(0x2f9ee6a1a92);
        perform(0x2f9e87b9ef2);
        perform(0x2f9ee7b9eea);
        perform(0x2f9ee7a9eb2);
        perform(0x2f9ee6a9ab2);
        perform(0x2f9ea7a9eaa);
        perform(0x2f9ea7b9ef2);
        perform(0x4faee9a2692);
        perform(0x4fae8bbaef2);
        perform(0x4faeebbaeea);
        perform(0x4faeebaaeb2);
        perform(0x4faee9aa6b2);
        perform(0x4faeabaaeaa);
        perform(0x4faeabbaef2);
        perform(0x8fbeeba2e92);
        perform(0x8fbe8fbbef2);
        perform(0x8fbeefbbeea);
        perform(0x8fbeefabeb2);
        perform(0x8fbeebaaeb2);
        perform(0x8fbeafabeaa);
        perform(0x8fbeafbbef2);
        perform(0x10fbee7a1e92);
        perform(0x10fbe8fbbef2);
        perform(0x10fbeefbbeea);
        perform(0x10fbeefabeb2);
        perform(0x10fbee7a9eb2);
        perform(0x10fbeafabeaa);
        perform(0x10fbeafbbef2);
        perform(0x1ffeefa3e92);
        perform(0x1ffe9fbfef2);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffafeb2);
        perform(0x1ffeefabeb2);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbfef2);
        perform(0x1f775dd774a);
        perform(0x1ef75fa7e92);
        perform(0x1f771dc770a);
        perform(0x1ef71fb7ed2);
        perform(0x1f7b5fcff32);
        perform(0x1f7b1fdff72);
        perform(0x1ff6fdbf6ea);
        perform(0x1ff6fdc775a);
        perform(0x1ff6ddb76ca);
        perform(0x1ff6ddd76fa);
        perform(0x1ff6bdaf6aa);
        perform(0x1ff6bdc76fa);
        perform(0x1ff71dc770a);
        perform(0x1ff71daf6da);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5dc7712);
        perform(0x1ffeffbfeea);
        perform(0x1ffeffc7f5a);
        perform(0x1ffedfb7eca);
        perform(0x1ffedfbff5a);
        perform(0x1ffebfafeaa);
        perform(0x1ffebfbff1a);
        perform(0x131bbfafeda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5ec7b12);
        perform(0x1f9b06c1b0a);
        perform(0x1f9b06d9b3a);
        perform(0x1f9b46d1b4a);
        perform(0x1f9b46c1b12);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6c9b32);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6d9b72);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x2f2347b9ef2);
        perform(0x2f22e8d2352);
        perform(0x2f2348d234a);
        perform(0x2f2348c2312);
        perform(0x2f2347c1f12);
        perform(0x2f2308c230a);
        perform(0x2f2308d2352);
        perform(0x4f2b48ba2f2);
        perform(0x4f2aead2b52);
        perform(0x4f2b4ad2b4a);
        perform(0x4f2b4ac2b12);
        perform(0x4f2b48c2312);
        perform(0x4f2b0ac2b0a);
        perform(0x4f2b0ad2b52);
        perform(0x8f3b4abaaf2);
        perform(0x8f3aeed3b52);
        perform(0x8f3b4ed3b4a);
        perform(0x8f3b4ec3b12);
        perform(0x8f3b4ac2b12);
        perform(0x8f3b0ec3b0a);
        perform(0x8f3b0ed3b52);
        perform(0x1b5b4ebbaf2);
        perform(0x1b5af6d5b52);
        perform(0x1b5b56d5b4a);
        perform(0x1b5b56c5b12);
        perform(0x1b5b4ec3b12);
        perform(0x1b5b16c5b0a);
        perform(0x1b5b16d5b52);
        perform(0x1b5b46b9af2);
        perform(0x1b5af6d5b52);
        perform(0x1b5b56d5b4a);
        perform(0x1b5b56c5b12);
        perform(0x1b5b46c1b12);
        perform(0x1b5b16c5b0a);
        perform(0x1b5b16d5b52);
        perform(0x10f3b46b9af2);
        perform(0x10f3aeed3b52);
        perform(0x10f3b4ed3b4a);
        perform(0x10f3b4ec3b12);
        perform(0x10f3b46c1b12);
        perform(0x10f3b0ec3b0a);
        perform(0x10f3b0ed3b52);
        perform(0x8d2b46b9af2);
        perform(0x8d2aead2b52);
        perform(0x8d2b4ad2b4a);
        perform(0x8d2b4ac2b12);
        perform(0x8d2b46c1b12);
        perform(0x8d2b0ac2b0a);
        perform(0x8d2b0ad2b52);
        perform(0x4e2346b9af2);
        perform(0x4e22e8d2352);
        perform(0x4e2348d234a);
        perform(0x4e2348c2312);
        perform(0x4e2346c1b12);
        perform(0x4e2308c230a);
        perform(0x4e2308d2352);
        perform(0x2f9f46b9af2);
        perform(0x2f9ee7d1f52);
        perform(0x2f9f47d1f4a);
        perform(0x2f9f47c1f12);
        perform(0x2f9f46c1b12);
        perform(0x2f9f07c1f0a);
        perform(0x2f9f07d1f52);
        perform(0x1f9b46d1b4a);
        perform(0x131b46d1b42);
        perform(0x2f9f46b9af2);
        perform(0x2f2347b9ef2);
        perform(0x1f9b06c1b0a);
        perform(0x1f9b06d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6c9b1a);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6d9b1a);
        perform(0x1f9b66d9b6a);
        perform(0x1f9b66b1afa);
        perform(0x1f9b06c1b0a);
        perform(0x1f9b06d1b7a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6d9b1a);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6d1b1a);
        perform(0x1f9b66d9b6a);
        perform(0x1f9b66b1afa);
        perform(0x1f9b26c9b2a);
        perform(0x1f9b46d1b4a);
        perform(0x131b26e9bb2);
        perform(0x1b5b46c9b32);
        perform(0x1b5b36d5b52);
        perform(0x10f3b46c9b32);
        perform(0x10f3b2ed3b52);
        perform(0x8d2b46c9b32);
        perform(0x8d2b2ad2b52);
        perform(0x4e2346c9b32);
        perform(0x4e2328d2352);
        perform(0x2f9f46c9b32);
        perform(0x2f9f27d1f52);
        perform(0x1f9b46d1b4a);
        perform(0x1f9b46f1bd2);
        perform(0x1f9b26d1b52);
        perform(0x1f9b06c1b0a);
        perform(0x1f9b06d9b3a);
        perform(0x1f9b46d1b4a);
        perform(0x1f9b46c1b12);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6c9b32);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6d9b72);
        perform(0x1f9aa6a9aaa);
        perform(0x1f9aa6b1afa);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6a9ab2);
        perform(0x2f2347b9ef2);
        perform(0x2f22e8d2352);
        perform(0x2f2348d234a);
        perform(0x2f2348c2312);
        perform(0x2f2347c1f12);
        perform(0x2f2308c230a);
        perform(0x2f2308d2352);
        perform(0x4f2b48ba2f2);
        perform(0x4f2aead2b52);
        perform(0x4f2b4ad2b4a);
        perform(0x4f2b4ac2b12);
        perform(0x4f2b48c2312);
        perform(0x4f2b0ac2b0a);
        perform(0x4f2b0ad2b52);
        perform(0x8f3b4abaaf2);
        perform(0x8f3aeed3b52);
        perform(0x8f3b4ed3b4a);
        perform(0x8f3b4ec3b12);
        perform(0x8f3b4ac2b12);
        perform(0x8f3b0ec3b0a);
        perform(0x8f3b0ed3b52);
        perform(0x1b5b4ebbaf2);
        perform(0x1b5af6d5b52);
        perform(0x1b5b56d5b4a);
        perform(0x1b5b56c5b12);
        perform(0x1b5b4ec3b12);
        perform(0x1b5b16c5b0a);
        perform(0x1b5b16d5b52);
        perform(0x1b5b46b9af2);
        perform(0x1b5af6d5b52);
        perform(0x1b5b56d5b4a);
        perform(0x1b5b56c5b12);
        perform(0x1b5b46c1b12);
        perform(0x1b5b16c5b0a);
        perform(0x1b5b16d5b52);
        perform(0x10f3b46b9af2);
        perform(0x10f3aeed3b52);
        perform(0x10f3b4ed3b4a);
        perform(0x10f3b4ec3b12);
        perform(0x10f3b46c1b12);
        perform(0x10f3b0ec3b0a);
        perform(0x10f3b0ed3b52);
        perform(0x8d2b46b9af2);
        perform(0x8d2aead2b52);
        perform(0x8d2b4ad2b4a);
        perform(0x8d2b4ac2b12);
        perform(0x8d2b46c1b12);
        perform(0x8d2b0ac2b0a);
        perform(0x8d2b0ad2b52);
        perform(0x4e2346b9af2);
        perform(0x4e22e8d2352);
        perform(0x4e2348d234a);
        perform(0x4e2348c2312);
        perform(0x4e2346c1b12);
        perform(0x4e2308c230a);
        perform(0x4e2308d2352);
        perform(0x2f9f46b9af2);
        perform(0x2f9ee7d1f52);
        perform(0x2f9f47d1f4a);
        perform(0x2f9f47c1f12);
        perform(0x2f9f46c1b12);
        perform(0x2f9f07c1f0a);
        perform(0x2f9f07d1f52);
        perform(0x1f9b46d1b4a);
        perform(0x131b46d1b42);
        perform(0x2f9f46b9af2);
        perform(0x2f2347b9ef2);
        perform(0x1f9b06c1b0a);
        perform(0x1f9b06d9b3a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6c9b1a);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6d9b1a);
        perform(0x1f9b66d9b6a);
        perform(0x1f9b66b1afa);
        perform(0x1f9b06c1b0a);
        perform(0x1f9b06d1b7a);
        perform(0x1f9ae6b9aea);
        perform(0x1f9ae6d9b1a);
        perform(0x1f9ac6b1aca);
        perform(0x1f9ac6d1b1a);
        perform(0x1f9b66d9b6a);
        perform(0x1f9b66b1afa);
        perform(0x1f9be6f9bea);
        perform(0x1f9be6d9b72);
        perform(0x1f9bc6f1bca);
        perform(0x2f1bc6f9bf2);
        perform(0x2f9fe6f1bd2);
        perform(0x4ea7c9fa7f2);
        perform(0x4fafe9f27d2);
        perform(0x8dafcbfaff2);
        perform(0x8fbfebf2fd2);
        perform(0x10b9fc7f9ff2);
        perform(0x10fbfe7f1fd2);
        perform(0x17bfcffbff2);
        perform(0x1fffeff3fd2);
        perform(0x1297a5e97aa);
        perform(0x1297bfffff2);
        perform(0x1213e4f93ea);
        perform(0x1213ffeffb2);
        perform(0x1f97e5f97ea);
        perform(0x1f97c5f17ca);
        perform(0x1fffc4f93f2);
        perform(0x1ffffff7fd2);
        perform(0x17bfdfffff2);
        perform(0x17bfeff3fd2);
        perform(0x10b9fcffbff2);
        perform(0x10b9fe7f1fd2);
        perform(0x8dafcffbff2);
        perform(0x8dafebf2fd2);
        perform(0x4e97c7f9ff2);
        perform(0x4e97e5f17d2);
        perform(0x2f1bc7f9ff2);
        perform(0x2f1be6f1bd2);
        perform(0x1f9785e178a);
        perform(0x1f9785e97b2);
        perform(0x1f9b66d9b6a);
        perform(0x129765d9762);
        perform(0x2f9f66e1b92);
        perform(0x2f1b65e1792);
        perform(0x1f9745d174a);
        perform(0x1f9745f177a);
        perform(0x1f9725c972a);
        perform(0x1f9725f97ba);
        perform(0x1f97a5e97aa);
        perform(0x1f97a5c975a);
        perform(0x1297e5f97ea);
        perform(0x1297c5f17ca);
        perform(0x1297e6e9bb2);
        perform(0x1297c5f97f2);
        perform(0x1297e5f97ea);
        perform(0x1297e5e97da);
        perform(0x1297a5e97aa);
        perform(0x1297a5f97f2);
        perform(0x1397e5f97ea);
        perform(0x1297e8ea3b2);
        perform(0x1297c5f17ca);
        perform(0x1297c5f97f2);
        perform(0x139fe5f17ba);
        perform(0x139fa7f9ff2);
        perform(0x1fa388e238a);
        perform(0x1fa388ea3b2);
        perform(0x1fa3c8f23ca);
        perform(0x1fa3c8e2392);
        perform(0x1fa368da36a);
        perform(0x142348d234a);
        perform(0x142347e9fb2);
        perform(0x1423e8fa3ea);
        perform(0x1423e8d239a);
        perform(0x142368fa3f2);
        perform(0x2f2bc9da772);
        perform(0x2f2b6af2bd2);
        perform(0x2f2bcaf2bca);
        perform(0x2f2bcae2b92);
        perform(0x2f2bc9e2792);
        perform(0x2f2b8ae2b8a);
        perform(0x2f2b8af2bd2);
        perform(0x4e33cadab72);
        perform(0x4e336cf33d2);
        perform(0x4e33ccf33ca);
        perform(0x4e33cce3392);
        perform(0x4e33cae2b92);
        perform(0x4e338ce338a);
        perform(0x4e338cf33d2);
        perform(0x8c43ccdb372);
        perform(0x8c4370f43d2);
        perform(0x8c43d0f43ca);
        perform(0x8c43d0e4392);
        perform(0x8c43cce3392);
        perform(0x8c4390e438a);
        perform(0x8c4390f43d2);
        perform(0x1c63d0dc372);
        perform(0x1c6378f63d2);
        perform(0x1c63d8f63ca);
        perform(0x1c63d8e6392);
        perform(0x1c63d0e4392);
        perform(0x1c6398e638a);
        perform(0x1c6398f63d2);
        perform(0x1c63c8da372);
        perform(0x1c6378f63d2);
        perform(0x1c63d8f63ca);
        perform(0x1c63d8e6392);
        perform(0x1c63c8e2392);
        perform(0x1c6398e638a);
        perform(0x1c6398f63d2);
        perform(0x1843c8da372);
        perform(0x184370f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0e4392);
        perform(0x1843c8e2392);
        perform(0x184390e438a);
        perform(0x184390f43d2);
        perform(0x8e33c8da372);
        perform(0x8e336cf33d2);
        perform(0x8e33ccf33ca);
        perform(0x8e33cce3392);
        perform(0x8e33c8e2392);
        perform(0x8e338ce338a);
        perform(0x8e338cf33d2);
        perform(0x4f2bc8da372);
        perform(0x4f2b6af2bd2);
        perform(0x4f2bcaf2bca);
        perform(0x4f2bcae2b92);
        perform(0x4f2bc8e2392);
        perform(0x4f2b8ae2b8a);
        perform(0x4f2b8af2bd2);
        perform(0x2fa7c8da372);
        perform(0x2fa769f27d2);
        perform(0x2fa7c9f27ca);
        perform(0x2fa7c9e2792);
        perform(0x2fa7c8e2392);
        perform(0x2fa789e278a);
        perform(0x2fa789f27d2);
        perform(0x1fa3c8f23ca);
        perform(0x1423c8d2352);
        perform(0x2fa7c8da372);
        perform(0x2f2bc9da772);
        perform(0x1ffffffffea);
        perform(0x1fffffdff72);
        perform(0x1fa388e238a);
        perform(0x1fa388ea3b2);
        perform(0x1fa368da36a);
        perform(0x1fa368f23d2);
        perform(0x1fa348d234a);
        perform(0x1fa348f23ba);
        perform(0x1fa328ca32a);
        perform(0x1fa328da39a);
        perform(0x1fa3a8ea3aa);
        perform(0x1fa3a8ca35a);
        perform(0x1fffdff7fca);
        perform(0x1fffdfefffa);
        perform(0x1fffbfeffaa);
        perform(0x1fffbff7fd2);
        perform(0x1fa4090240a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fa7c9f27ca);
        perform(0x2fa7c8ea3b2);
        perform(0x2f2bc9ea7b2);
        perform(0x1fa409f27d2 | (regZ << 25));
        perform(0x1387c1f07ca);
        perform(0x14a3c8f23c2);
        perform(0x1087c4f93f2);
        perform(0x14a7e9fa7e2);
        perform(0x1407e1f87ea);
        perform(0x140781e078a);
        perform(0x14078100412 | (regX << 5) | (regX << 15));
        perform(0x1407e1e0792);
        perform(0x148741d074a);
        perform(0x148741f87da);
        perform(0x148761d876a);
        perform(0x148761d0752);
        perform(0x148721c872a);
        perform(0x148721f07d2);
        perform(0x148701c070a);
        perform(0x148701f87f2);
        perform(0x1486e1b86ea);
        perform(0x1486e1c073a);
        perform(0x148721c872a);
        perform(0x148721b86f2);
        perform(0x108701c070a);
        perform(0x10871fffff2);
        perform(0x1087a1e87aa);
        perform(0x1087a1c075a);
        perform(0x108721e87b2);
        perform(0x248f62c8b32);
        perform(0x248f23d8f72);
        perform(0x248f63d8f6a);
        perform(0x248f63d0f52);
        perform(0x248f62d0b52);
        perform(0x248f43d0f4a);
        perform(0x248f43d8f72);
        perform(0x449763c8f32);
        perform(0x449725d9772);
        perform(0x449765d976a);
        perform(0x449765d1752);
        perform(0x449763d0f52);
        perform(0x449745d174a);
        perform(0x449745d9772);
        perform(0x14a765c9732);
        perform(0x14a729da772);
        perform(0x14a769da76a);
        perform(0x14a769d2752);
        perform(0x14a765d1752);
        perform(0x14a749d274a);
        perform(0x14a749da772);
        perform(0x14a761c8732);
        perform(0x14a729da772);
        perform(0x14a769da76a);
        perform(0x14a769d2752);
        perform(0x14a761d0752);
        perform(0x14a749d274a);
        perform(0x14a749da772);
        perform(0x129761c8732);
        perform(0x129725d9772);
        perform(0x129765d976a);
        perform(0x129765d1752);
        perform(0x129761d0752);
        perform(0x129745d174a);
        perform(0x129745d9772);
        perform(0x438f61c8732);
        perform(0x438f23d8f72);
        perform(0x438f63d8f6a);
        perform(0x438f63d0f52);
        perform(0x438f61d0752);
        perform(0x438f43d0f4a);
        perform(0x438f43d8f72);
        perform(0x240b61c8732);
        perform(0x240b22d8b72);
        perform(0x240b62d8b6a);
        perform(0x240b62d0b52);
        perform(0x240b61d0752);
        perform(0x240b42d0b4a);
        perform(0x240b42d8b72);
        perform(0x148761d876a);
        perform(0x108761c0712);
        perform(0x240b61c8732);
        perform(0x248f62c8b32);
        perform(0x148741d074a);
        perform(0x148741f87da);
        perform(0x148721c872a);
        perform(0x148721f075a);
        perform(0x148701c070a);
        perform(0x148701f875a);
        perform(0x1487c1f07ca);
        perform(0x1487c1c073a);
        perform(0x148741d074a);
        perform(0x148741d87da);
        perform(0x148721c872a);
        perform(0x148721f075a);
        perform(0x148701c070a);
        perform(0x148701d875a);
        perform(0x1487c1f07ca);
        perform(0x1487c1c073a);
        perform(0x1407e1f87ea);
        perform(0x140781e078a);
        perform(0x14078100412 | (regY << 5) | (regY << 15));
        perform(0x1407e1e0792);
        perform(0x148761d876a);
        perform(0x148761f87f2);
        perform(0x148721c872a);
        perform(0x148721d87da);
        perform(0x148741d074a);
        perform(0x148741c8732);
        perform(0x148701c070a);
        perform(0x148701f07d2);
        perform(0x1486e1b86ea);
        perform(0x1486e1d8772);
        perform(0x1486c1b06ca);
        perform(0x1486c1b871a);
        perform(0x148701c070a);
        perform(0x148701b06d2);
        perform(0x108701d0752);
        perform(0x248f42c0b12);
        perform(0x248f03d0f52);
        perform(0x248f43d0f4a);
        perform(0x248f43c8f32);
        perform(0x248f42c8b32);
        perform(0x248f23c8f2a);
        perform(0x248f23d0f52);
        perform(0x449743c0f12);
        perform(0x449705d1752);
        perform(0x449745d174a);
        perform(0x449745c9732);
        perform(0x449743c8f32);
        perform(0x449725c972a);
        perform(0x449725d1752);
        perform(0x14a745c1712);
        perform(0x14a709d2752);
        perform(0x14a749d274a);
        perform(0x14a749ca732);
        perform(0x14a745c9732);
        perform(0x14a729ca72a);
        perform(0x14a729d2752);
        perform(0x14a741c0712);
        perform(0x14a709d2752);
        perform(0x14a749d274a);
        perform(0x14a749ca732);
        perform(0x14a741c8732);
        perform(0x14a729ca72a);
        perform(0x14a729d2752);
        perform(0x129741c0712);
        perform(0x129705d1752);
        perform(0x129745d174a);
        perform(0x129745c9732);
        perform(0x129741c8732);
        perform(0x129725c972a);
        perform(0x129725d1752);
        perform(0x438f41c0712);
        perform(0x438f03d0f52);
        perform(0x438f43d0f4a);
        perform(0x438f43c8f32);
        perform(0x438f41c8732);
        perform(0x438f23c8f2a);
        perform(0x438f23d0f52);
        perform(0x240b41c0712);
        perform(0x240b02d0b52);
        perform(0x240b42d0b4a);
        perform(0x240b42c8b32);
        perform(0x240b41c8732);
        perform(0x240b22c8b2a);
        perform(0x240b22d0b52);
        perform(0x148741d074a);
        perform(0x108741d074a);
        perform(0x240b41c0712);
        perform(0x248f42c0b12);
        perform(0x148721c872a);
        perform(0x148721d87da);
        perform(0x148701c070a);
        perform(0x148701f073a);
        perform(0x1486e1b86ea);
        perform(0x1486e1d873a);
        perform(0x1487c1f07ca);
        perform(0x1487c1b871a);
        perform(0x148721c872a);
        perform(0x148721d07da);
        perform(0x148701c070a);
        perform(0x148701f073a);
        perform(0x1486e1b86ea);
        perform(0x1486e1d073a);
        perform(0x1487c1f07ca);
        perform(0x1487c1b871a);
        perform(0x1003e0f83ea);
        perform(0x1003e000012 | (regX << 5) | (regX << 15));
        perform(0x1003c0f03ca);
        perform(0x1003c000012 | (regY << 5) | (regY << 15));
        perform(0x1003a0e83aa);
        perform(0x1003a00001a | (regX << 5) | (regY << 15));
        perform(0x100380e038a);
        perform(0x100380f03fa);
        perform(0x1000000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x100000e03ba | (regZ << 25));
        perform(0x14a7e9fa7ea);
        perform(0x14a7ffeffb2);
        perform(0x14a789e278a);
        perform(0x14a789fa7da);
        perform(0x1003e0f83ea);
        perform(0x1003e9e2792);
        perform(0x1087c0f83f2);
        perform(0x110bc0f83f2);
        perform(0x118fc0f83f2);
        perform(0x1213c0f83f2);
        perform(0x1297c0f83f2);
        perform(0x131bc0f83f2);
        perform(0x139fc0f83f2);
        perform(0x1423c0f83f2);
        perform(0x14a7c0f83f2);
        perform(0x14a400f83f2 | (regZ << 25));
        perform(0x152800f83f2 | (regZ << 25));
        perform(0x15ac00f83f2 | (regZ << 25));
        perform(0x163000f83f2 | (regZ << 25));
        perform(0x16b400f83f2 | (regZ << 25));
        perform(0x173800f83f2 | (regZ << 25));
        perform(0x17bc00f83f2 | (regZ << 25));
        perform(0x184000f83f2 | (regZ << 25));
        perform(0x18c400f83f2 | (regZ << 25));
        perform(0x194800f83f2 | (regZ << 25));
        perform(0x19cc00f83f2 | (regZ << 25));
        perform(0x1a5000f83f2 | (regZ << 25));
        perform(0x1ad400f83f2 | (regZ << 25));
        perform(0x1b5800f83f2 | (regZ << 25));
        perform(0x1bdc00f83f2 | (regZ << 25));
        perform(0x1c6000f83f2 | (regZ << 25));
        perform(0x1ce400f83f2 | (regZ << 25));
        perform(0x1d6800f83f2 | (regZ << 25));
        perform(0x1dec00f83f2 | (regZ << 25));
        perform(0x1e7000f83f2 | (regZ << 25));
        perform(0x1ef400f83f2 | (regZ << 25));
        perform(0x1f7800f83f2 | (regZ << 25));
        perform(0x1ffc00f83f2 | (regZ << 25));
        perform(0x100000f83f2 | (regZ << 25));
        perform(0x1407e1f87ea);
        perform(0x1404010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1407e1f07d2);
        perform(0x140401f87f2 | (regZ << 25));
        perform(0x1407a1e87aa);
        perform(0x1407a100412 | (regY << 5) | (regY << 15));
        perform(0x140781e078a);
        perform(0x238781e87b2);
        perform(0x240ba1e0792);
        perform(0x430b82e8bb2);
        perform(0x4413a2e0b92);
        perform(0x121384e93b2);
        perform(0x1423a4e1392);
        perform(0x1003c0f03ca);
        perform(0x1003c8ea3b2);
        perform(0x1f83e0f83ea);
        perform(0x1f87c1f07ca);
        perform(0x1003e0f03d2);
        perform(0x1843c0f83f2);
        perform(0x1843f0f43d2);
        perform(0x10c23c0f83f2);
        perform(0x10c23e8f23d2);
        perform(0x8e13c0f83f2);
        perform(0x8e13e4f13d2);
        perform(0x4f0bc0f83f2);
        perform(0x4f0be2f0bd2);
        perform(0x2f87c0f83f2);
        perform(0x2f87e1f07d2);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0f801a | (regZ << 5));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000e83b2 | (regZ << 25));
        perform(0x1f83e0f83ea);
        perform(0x1fffe000012 | (regX << 5) | (regX << 15));
        perform(0x1003e902412 | (regX << 5) | (regX << 15));
        perform(0x1087ea02812 | (regX << 5) | (regX << 15));
        perform(0x110beb02c12 | (regX << 5) | (regX << 15));
        perform(0x118fec03012 | (regX << 5) | (regX << 15));
        perform(0x1213ed03412 | (regX << 5) | (regX << 15));
        perform(0x1297ee03812 | (regX << 5) | (regX << 15));
        perform(0x131bef03c12 | (regX << 5) | (regX << 15));
        perform(0x139ff004012 | (regX << 5) | (regX << 15));
        perform(0x1423f104412 | (regX << 5) | (regX << 15));
        perform(0x14a7f204812 | (regX << 5) | (regX << 15));
        perform(0x152bf304c12 | (regX << 5) | (regX << 15));
        perform(0x15aff405012 | (regX << 5) | (regX << 15));
        perform(0x1633f505412 | (regX << 5) | (regX << 15));
        perform(0x16b7f605812 | (regX << 5) | (regX << 15));
        perform(0x173bf705c12 | (regX << 5) | (regX << 15));
        perform(0x17bff806012 | (regX << 5) | (regX << 15));
        perform(0x1843f906412 | (regX << 5) | (regX << 15));
        perform(0x18c7fa06812 | (regX << 5) | (regX << 15));
        perform(0x194bfb06c12 | (regX << 5) | (regX << 15));
        perform(0x19cffc07012 | (regX << 5) | (regX << 15));
        perform(0x1a53fd07412 | (regX << 5) | (regX << 15));
        perform(0x1ad7fe07812 | (regX << 5) | (regX << 15));
        perform(0x1b5bff07c12 | (regX << 5) | (regX << 15));
        perform(0x1bdfe100412 | (regX << 5) | (regX << 15));
        perform(0x1c63e200812 | (regX << 5) | (regX << 15));
        perform(0x1ce7e300c12 | (regX << 5) | (regX << 15));
        perform(0x1d6be401012 | (regX << 5) | (regX << 15));
        perform(0x1defe501412 | (regX << 5) | (regX << 15));
        perform(0x1e73e601812 | (regX << 5) | (regX << 15));
        perform(0x1ef7e701c12 | (regX << 5) | (regX << 15));
        perform(0x1f7be802012 | (regX << 5) | (regX << 15));
        perform(0x1f80000000a | (regX << 5) | (regX << 15) | (regX << 25));
        perform(0x1f8000f83f2 | (regX << 25));
        perform(0x1f83e0f83ea);
        perform(0x1fffe000012 | (regY << 5) | (regY << 15));
        perform(0x1003e902412 | (regY << 5) | (regY << 15));
        perform(0x1087ea02812 | (regY << 5) | (regY << 15));
        perform(0x110beb02c12 | (regY << 5) | (regY << 15));
        perform(0x118fec03012 | (regY << 5) | (regY << 15));
        perform(0x1213ed03412 | (regY << 5) | (regY << 15));
        perform(0x1297ee03812 | (regY << 5) | (regY << 15));
        perform(0x131bef03c12 | (regY << 5) | (regY << 15));
        perform(0x139ff004012 | (regY << 5) | (regY << 15));
        perform(0x1423f104412 | (regY << 5) | (regY << 15));
        perform(0x14a7f204812 | (regY << 5) | (regY << 15));
        perform(0x152bf304c12 | (regY << 5) | (regY << 15));
        perform(0x15aff405012 | (regY << 5) | (regY << 15));
        perform(0x1633f505412 | (regY << 5) | (regY << 15));
        perform(0x16b7f605812 | (regY << 5) | (regY << 15));
        perform(0x173bf705c12 | (regY << 5) | (regY << 15));
        perform(0x17bff806012 | (regY << 5) | (regY << 15));
        perform(0x1843f906412 | (regY << 5) | (regY << 15));
        perform(0x18c7fa06812 | (regY << 5) | (regY << 15));
        perform(0x194bfb06c12 | (regY << 5) | (regY << 15));
        perform(0x19cffc07012 | (regY << 5) | (regY << 15));
        perform(0x1a53fd07412 | (regY << 5) | (regY << 15));
        perform(0x1ad7fe07812 | (regY << 5) | (regY << 15));
        perform(0x1b5bff07c12 | (regY << 5) | (regY << 15));
        perform(0x1bdfe100412 | (regY << 5) | (regY << 15));
        perform(0x1c63e200812 | (regY << 5) | (regY << 15));
        perform(0x1ce7e300c12 | (regY << 5) | (regY << 15));
        perform(0x1d6be401012 | (regY << 5) | (regY << 15));
        perform(0x1defe501412 | (regY << 5) | (regY << 15));
        perform(0x1e73e601812 | (regY << 5) | (regY << 15));
        perform(0x1ef7e701c12 | (regY << 5) | (regY << 15));
        perform(0x1f7be802012 | (regY << 5) | (regY << 15));
        perform(0x1f80000000a | (regY << 5) | (regY << 15) | (regY << 25));
        perform(0x1f8000f83f2 | (regY << 25));
        perform(0x1f83e0f83ea);
        perform(0x1fffe000012 | (regZ << 5) | (regZ << 15));
        perform(0x1003e902412 | (regZ << 5) | (regZ << 15));
        perform(0x1087ea02812 | (regZ << 5) | (regZ << 15));
        perform(0x110beb02c12 | (regZ << 5) | (regZ << 15));
        perform(0x118fec03012 | (regZ << 5) | (regZ << 15));
        perform(0x1213ed03412 | (regZ << 5) | (regZ << 15));
        perform(0x1297ee03812 | (regZ << 5) | (regZ << 15));
        perform(0x131bef03c12 | (regZ << 5) | (regZ << 15));
        perform(0x139ff004012 | (regZ << 5) | (regZ << 15));
        perform(0x1423f104412 | (regZ << 5) | (regZ << 15));
        perform(0x14a7f204812 | (regZ << 5) | (regZ << 15));
        perform(0x152bf304c12 | (regZ << 5) | (regZ << 15));
        perform(0x15aff405012 | (regZ << 5) | (regZ << 15));
        perform(0x1633f505412 | (regZ << 5) | (regZ << 15));
        perform(0x16b7f605812 | (regZ << 5) | (regZ << 15));
        perform(0x173bf705c12 | (regZ << 5) | (regZ << 15));
        perform(0x17bff806012 | (regZ << 5) | (regZ << 15));
        perform(0x1843f906412 | (regZ << 5) | (regZ << 15));
        perform(0x18c7fa06812 | (regZ << 5) | (regZ << 15));
        perform(0x194bfb06c12 | (regZ << 5) | (regZ << 15));
        perform(0x19cffc07012 | (regZ << 5) | (regZ << 15));
        perform(0x1a53fd07412 | (regZ << 5) | (regZ << 15));
        perform(0x1ad7fe07812 | (regZ << 5) | (regZ << 15));
        perform(0x1b5bff07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1bdfe100412 | (regZ << 5) | (regZ << 15));
        perform(0x1c63e200812 | (regZ << 5) | (regZ << 15));
        perform(0x1ce7e300c12 | (regZ << 5) | (regZ << 15));
        perform(0x1d6be401012 | (regZ << 5) | (regZ << 15));
        perform(0x1defe501412 | (regZ << 5) | (regZ << 15));
        perform(0x1e73e601812 | (regZ << 5) | (regZ << 15));
        perform(0x1ef7e701c12 | (regZ << 5) | (regZ << 15));
        perform(0x1f7be802012 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000f83f2 | (regZ << 25));
    }

    template <>
    void modulo<int>(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83c0f03ca);
        perform(0x1f83a0e83aa);
        perform(0x1003df07c12 | (regX << 5) | (regX << 15));
        perform(0x1f83a0f03d2);
        perform(0x1f840100402 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fffdff7fca);
        perform(0x1fff9fe7f8a);
        perform(0x1fffdfe7f92);
        perform(0x1f83e0f83ea);
        perform(0x1f8380e038a);
        perform(0x1f8360d8362);
        perform(0x1000000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1fffffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039e07812 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10037fffff2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1f7bffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039d07412 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10037effbf2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1ef7ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039c07012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10037dff7f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1e73ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039b06c12 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10037cff3f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1defffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039a06812 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10037bfeff2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1d6bffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039906412 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10037afebf2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1ce7ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039806012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100379fe7f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1c63ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039705c12 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100378fe3f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1bdfffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039605812 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100377fdff2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1b5bffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039505412 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100376fdbf2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1ad7ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039405012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100375fd7f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1a53ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039304c12 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100374fd3f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x19cfffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039204812 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100373fcff2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x194bffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039104412 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100372fcbf2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x18c7ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10039004012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100371fc7f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1843ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038f03c12 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100370fc3f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x17bfffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038e03812 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10036ffbff2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x173bffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038d03412 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10036efbbf2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x16b7ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038c03012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10036dfb7f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1633ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038b02c12 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10036cfb3f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x15afffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038a02812 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10036bfaff2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x152bffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038902412 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x10036afabf2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x14a7ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038802012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100369fa7f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1423ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038701c12 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100368fa3f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x139fffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038601812 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100367f9ff2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x131bffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038501412 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100366f9bf2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1297ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038401012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100365f97f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1213ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038300c12 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100364f93f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x118fffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038200812 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100363f8ff2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x110bffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038100412 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100362f8bf2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1087ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x2f878000012 | (regZ << 5) | (regZ << 15));
        perform(0x2f0b8100412 | (regZ << 5) | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8401e0792 | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x2f8780e83b2);
        perform(0x2f0b81e87b2);
        perform(0x10038000012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a0e0392);
        perform(0x1f8380e038a);
        perform(0x1f8360d836a);
        perform(0x100361f87f2);
        perform(0x100380d8372);
        perform(0x100000d8372 | (regZ << 25));
        perform(0x184360e0392);
        perform(0x184390dc372);
        perform(0x10c2360e0392);
        perform(0x10c2388da372);
        perform(0x8e1360e0392);
        perform(0x8e1384d9372);
        perform(0x4f0b60e0392);
        perform(0x4f0b82d8b72);
        perform(0x2f8760e0392);
        perform(0x2f8781d8772);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regY << 5) | (regY << 15));
        perform(0x1f8320c832a);
        perform(0x1f83200039a | (regY << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c033a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8300c030a);
        perform(0x1f8300c83ba);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c801a | (regZ << 5));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b037a);
        perform(0x1f84010040a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x10000000002 | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fc7f3a);
        perform(0x2f8400c033a | (regZ << 25));
        perform(0x2f0801c073a | (regZ << 25));
        perform(0x1f8320c832a);
        perform(0x1f8320b031a);
        perform(0x1f82e0b82ea);
        perform(0x1f82e0c037a);
        perform(0x1f83a0e83aa);
        perform(0x1f83a0b833a);
        perform(0x1f8320c832a);
        perform(0x1f8320003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x1f8300c030a);
        perform(0x1f8300e83b2);
        perform(0x1f82e0b82ea);
        perform(0x1f82e000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f82c0b02ca);
        perform(0x1f82c0b831a);
        perform(0x1f8300c030a);
        perform(0x1f8300b02d2);
        perform(0x2f8760c0312);
        perform(0x2f8701d8772);
        perform(0x2f8761d876a);
        perform(0x2f8761c8732);
        perform(0x2f8760c8332);
        perform(0x2f8721c872a);
        perform(0x2f8721d8772);
        perform(0x4f8f61c0712);
        perform(0x4f8f03d8f72);
        perform(0x4f8f63d8f6a);
        perform(0x4f8f63c8f32);
        perform(0x4f8f61c8732);
        perform(0x4f8f23c8f2a);
        perform(0x4f8f23d8f72);
        perform(0x8f9f63c0f12);
        perform(0x8f9f07d9f72);
        perform(0x8f9f67d9f6a);
        perform(0x8f9f67c9f32);
        perform(0x8f9f63c8f32);
        perform(0x8f9f27c9f2a);
        perform(0x8f9f27d9f72);
        perform(0x10fbf67c1f12);
        perform(0x10fbf0fdbf72);
        perform(0x10fbf6fdbf6a);
        perform(0x10fbf6fcbf32);
        perform(0x10fbf67c9f32);
        perform(0x10fbf2fcbf2a);
        perform(0x10fbf2fdbf72);
        perform(0x1fff6fc3f12);
        perform(0x1fff1fdff72);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fcff32);
        perform(0x1fff6fcbf32);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff72);
        perform(0x1f77ddf77ca);
        perform(0x1ef7dfc7f12);
        perform(0x1f779de778a);
        perform(0x1ef79fd7f52);
        perform(0x1f7bdfeffb2);
        perform(0x1f7b9f07c12 | (regZ << 5) | (regZ << 15));
        perform(0x1ff77ddf76a);
        perform(0x1ff77de77da);
        perform(0x1ff75dd774a);
        perform(0x1ff75df777a);
        perform(0x1ff73dcf72a);
        perform(0x1ff73de777a);
        perform(0x1ff79de778a);
        perform(0x1ff79dcf75a);
        perform(0x1fffdff7fca);
        perform(0x1fffdde7792);
        perform(0x1fff7fdff6a);
        perform(0x1fff7fe7fda);
        perform(0x1fff5fd7f4a);
        perform(0x1fff5fdffda);
        perform(0x1fff3fcff2a);
        perform(0x1fff3fdff9a);
        perform(0x1003ffcff5a);
        perform(0x1fffdff7fca);
        perform(0x1fffdee7b92);
        perform(0x1f8380e038a);
        perform(0x1f8380003ba | (regZ << 15));
        perform(0x1f83c0f03ca);
        perform(0x1f83c0e0392);
        perform(0x1f8360d836a);
        perform(0x1f8360e83b2);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f8320c832a);
        perform(0x1f8320d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x2f0bc1d8772);
        perform(0x2f0b62f0bd2);
        perform(0x2f0bc2f0bca);
        perform(0x2f0bc2e0b92);
        perform(0x2f0bc1e0792);
        perform(0x2f0b82e0b8a);
        perform(0x2f0b82f0bd2);
        perform(0x4e13c2d8b72);
        perform(0x4e1364f13d2);
        perform(0x4e13c4f13ca);
        perform(0x4e13c4e1392);
        perform(0x4e13c2e0b92);
        perform(0x4e1384e138a);
        perform(0x4e1384f13d2);
        perform(0x8c23c4d9372);
        perform(0x8c2368f23d2);
        perform(0x8c23c8f23ca);
        perform(0x8c23c8e2392);
        perform(0x8c23c4e1392);
        perform(0x8c2388e238a);
        perform(0x8c2388f23d2);
        perform(0x1843c8da372);
        perform(0x184370f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0e4392);
        perform(0x1843c8e2392);
        perform(0x184390e438a);
        perform(0x184390f43d2);
        perform(0x1843c0d8372);
        perform(0x184370f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0e4392);
        perform(0x1843c0e0392);
        perform(0x184390e438a);
        perform(0x184390f43d2);
        perform(0x10c23c0d8372);
        perform(0x10c2368f23d2);
        perform(0x10c23c8f23ca);
        perform(0x10c23c8e2392);
        perform(0x10c23c0e0392);
        perform(0x10c2388e238a);
        perform(0x10c2388f23d2);
        perform(0x8e13c0d8372);
        perform(0x8e1364f13d2);
        perform(0x8e13c4f13ca);
        perform(0x8e13c4e1392);
        perform(0x8e13c0e0392);
        perform(0x8e1384e138a);
        perform(0x8e1384f13d2);
        perform(0x4f0bc0d8372);
        perform(0x4f0b62f0bd2);
        perform(0x4f0bc2f0bca);
        perform(0x4f0bc2e0b92);
        perform(0x4f0bc0e0392);
        perform(0x4f0b82e0b8a);
        perform(0x4f0b82f0bd2);
        perform(0x2f87c0d8372);
        perform(0x2f8761f07d2);
        perform(0x2f87c1f07ca);
        perform(0x2f87c1e0792);
        perform(0x2f87c0e0392);
        perform(0x2f8781e078a);
        perform(0x2f8781f07d2);
        perform(0x1f83c0f03ca);
        perform(0x1003c0f03c2);
        perform(0x2f87c0d8372);
        perform(0x2f0bc1d8772);
        perform(0x1f8380e038a);
        perform(0x1f8380003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360e839a);
        perform(0x1f8340d034a);
        perform(0x1f83400039a | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d037a | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x1f8380f001a | (regZ << 5));
        perform(0x1f8360d836a);
        perform(0x1f83600039a | (regZ << 15));
        perform(0x1f8340d034a);
        perform(0x1f8340f039a);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d037a | (regZ << 25));
        perform(0x1f83a0e83aa);
        perform(0x1f83c0f03ca);
        perform(0x1003a0f83f2);
        perform(0x1843c0e83b2);
        perform(0x1843b0f43d2);
        perform(0x10c23c0e83b2);
        perform(0x10c23a8f23d2);
        perform(0x8e13c0e83b2);
        perform(0x8e13a4f13d2);
        perform(0x4f0bc0e83b2);
        perform(0x4f0ba2f0bd2);
        perform(0x2f87c0e83b2);
        perform(0x2f87a1f07d2);
        perform(0x1f83c0f03ca);
        perform(0x1f83c000012 | (regY << 5) | (regY << 15));
        perform(0x1f83a0f03d2);
        perform(0x1f8380e038a);
        perform(0x1f8380003ba | (regZ << 15));
        perform(0x1f83c0f03ca);
        perform(0x1f83c0e0392);
        perform(0x1f8360d836a);
        perform(0x1f8360e83b2);
        perform(0x1f8340d034a);
        perform(0x1f834000012 | (regZ << 5) | (regZ << 15));
        perform(0x1f8320c832a);
        perform(0x1f8320d037a);
        perform(0x1f8360d836a);
        perform(0x1f8360c8332);
        perform(0x2f0bc1d8772);
        perform(0x2f0b62f0bd2);
        perform(0x2f0bc2f0bca);
        perform(0x2f0bc2e0b92);
        perform(0x2f0bc1e0792);
        perform(0x2f0b82e0b8a);
        perform(0x2f0b82f0bd2);
        perform(0x4e13c2d8b72);
        perform(0x4e1364f13d2);
        perform(0x4e13c4f13ca);
        perform(0x4e13c4e1392);
        perform(0x4e13c2e0b92);
        perform(0x4e1384e138a);
        perform(0x4e1384f13d2);
        perform(0x8c23c4d9372);
        perform(0x8c2368f23d2);
        perform(0x8c23c8f23ca);
        perform(0x8c23c8e2392);
        perform(0x8c23c4e1392);
        perform(0x8c2388e238a);
        perform(0x8c2388f23d2);
        perform(0x1843c8da372);
        perform(0x184370f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0e4392);
        perform(0x1843c8e2392);
        perform(0x184390e438a);
        perform(0x184390f43d2);
        perform(0x1843c0d8372);
        perform(0x184370f43d2);
        perform(0x1843d0f43ca);
        perform(0x1843d0e4392);
        perform(0x1843c0e0392);
        perform(0x184390e438a);
        perform(0x184390f43d2);
        perform(0x10c23c0d8372);
        perform(0x10c2368f23d2);
        perform(0x10c23c8f23ca);
        perform(0x10c23c8e2392);
        perform(0x10c23c0e0392);
        perform(0x10c2388e238a);
        perform(0x10c2388f23d2);
        perform(0x8e13c0d8372);
        perform(0x8e1364f13d2);
        perform(0x8e13c4f13ca);
        perform(0x8e13c4e1392);
        perform(0x8e13c0e0392);
        perform(0x8e1384e138a);
        perform(0x8e1384f13d2);
        perform(0x4f0bc0d8372);
        perform(0x4f0b62f0bd2);
        perform(0x4f0bc2f0bca);
        perform(0x4f0bc2e0b92);
        perform(0x4f0bc0e0392);
        perform(0x4f0b82e0b8a);
        perform(0x4f0b82f0bd2);
        perform(0x2f87c0d8372);
        perform(0x2f8761f07d2);
        perform(0x2f87c1f07ca);
        perform(0x2f87c1e0792);
        perform(0x2f87c0e0392);
        perform(0x2f8781e078a);
        perform(0x2f8781f07d2);
        perform(0x1f83c0f03ca);
        perform(0x1003c0f03c2);
        perform(0x2f87c0d8372);
        perform(0x2f0bc1d8772);
        perform(0x1f8380e038a);
        perform(0x1f8380003ba | (regZ << 15));
        perform(0x1f8360d836a);
        perform(0x1f8360e839a);
        perform(0x1f8340d034a);
        perform(0x1f83400039a | (regZ << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d037a | (regZ << 25));
        perform(0x1f8380e038a);
        perform(0x1f8380f001a | (regZ << 5));
        perform(0x1f8360d836a);
        perform(0x1f83600039a | (regZ << 15));
        perform(0x1f8340d034a);
        perform(0x1f8340f039a);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000d037a | (regZ << 25));
    }

    template <>
    void sign<int>(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1003e0f83ea);
        perform(0x1003ff07c12 | (regX << 5) | (regX << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x100000f83f2 | (regZ << 25));
    }

    template <>
    void sign<float>(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1003e0f83ea);
        perform(0x1003ff07c12 | (regX << 5) | (regX << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x100000f83f2 | (regZ << 25));
    }

    template <>
    void zero<int>(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83c0f03ca);
        perform(0x1f83c000012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x2f03a0f03d2);
        perform(0x2f87c0e83b2);
        perform(0x4e87a1f07d2);
        perform(0x4f8fc1e87b2);
        perform(0x8d8fa3f0fd2);
        perform(0x8f9fc3e8fb2);
        perform(0x10b9fa7f1fd2);
        perform(0x10fbfc7e9fb2);
        perform(0x17bfaff3fd2);
        perform(0x1fffcfebfb2);
        perform(0x1003e0f83ea);
        perform(0x1003fff7fd2);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x100000f83f2 | (regZ << 25));
    }

    template <>
    void zero<float>(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83c0f03ca);
        perform(0x1f83c000012 | (regX << 5) | (regX << 15));
        perform(0x1f83a0e83aa);
        perform(0x2f03a0f03d2);
        perform(0x2f87c0e83b2);
        perform(0x4e87a1f07d2);
        perform(0x4f8fc1e87b2);
        perform(0x8d8fa3f0fd2);
        perform(0x8f9fc3e8fb2);
        perform(0x10b9fa7f1fd2);
        perform(0x10fbfc7e9fb2);
        perform(0x17bfaff3fd2);
        perform(0x1fffcfebfb2);
        perform(0x1003e0f83ea);
        perform(0x1003fff7fd2);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x100000f83f2 | (regZ << 25));
    }

    void bitwiseNot(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f800000012 | (regX << 5) | (regX << 15) | (regZ << 25));
    }

    void bitwiseAnd(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f83c0f03ca);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f83e000012 | (regX << 5) | (regX << 15));
        perform(0x1f83c000012 | (regY << 5) | (regY << 15));
        perform(0x1f8000f03fa | (regZ << 25));
    }

    void bitwiseXor(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f83e000012 | (regX << 5) | (regX << 15));
        perform(0x1f83c0f03ca);
        perform(0x1f83c000012 | (regY << 5) | (regY << 15));
        perform(0x1f83a0e83aa);
        perform(0x1f83a00001a | (regX << 5) | (regY << 15));
        perform(0x1f8380e038a);
        perform(0x1f8380f03fa);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000e03ba | (regZ << 25));
    }

    void bitwiseOr(size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f83e00001a | (regX << 5) | (regY << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000f83f2 | (regZ << 25));
    }

    void bitwiseMux(size_t regC, size_t regX, size_t regY, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f84010040a | (regC << 5) | (regC << 15) | (regC << 25));
        perform(0x1f83e0f83ea);
        perform(0x1003e000012 | (regC << 5) | (regC << 15));
        perform(0x1843e000012 | (regC << 5) | (regC << 15));
        perform(0x184010fc3f2 | (regC << 25));
        perform(0x10c23e000012 | (regC << 5) | (regC << 15));
        perform(0x10c2008fa3f2 | (regC << 25));
        perform(0x8e13e000012 | (regC << 5) | (regC << 15));
        perform(0x8e1004f93f2 | (regC << 25));
        perform(0x4f0be000012 | (regC << 5) | (regC << 15));
        perform(0x4f0802f8bf2 | (regC << 25));
        perform(0x2f87e000012 | (regC << 5) | (regC << 15));
        perform(0x2f8401f87f2 | (regC << 25));
        perform(0x1f83c0f03ca);
        perform(0x1f83c0f801a | (regX << 5));
        perform(0x1f83a0e83aa);
        perform(0x1f83a00001a | (regY << 5) | (regC << 15));
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f8000e83da | (regZ << 25));
    }

    void copy(size_t regX, size_t regZ, RangeMask crossbars, RangeMask rows)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);
        driverSetRowMask(rows);

        // Perform the corresponding micro-operations
        perform(0x1f83e0f83ea);
        perform(0x1f80000000a | (regZ << 5) | (regZ << 15) | (regZ << 25));
        perform(0x1f83e000012 | (regX << 5) | (regX << 15));
        perform(0x1f8000f83f2 | (regZ << 25));
    }

    void move(size_t srcRow, size_t srcReg, size_t dstRow, size_t dstReg, size_t crossbarDistance, RangeMask crossbars)
    {

        // Update the masks if necessary
        driverSetCrossbarMask(crossbars);

        // Convert the crossbarDistance to sign/magnitude format
        size_t dstCrossbar = driverCrossbarMask.start + crossbarDistance;

        // Perform the corresponding micro-operations
        perform(0x3 | (srcRow << 2) | (srcReg << 12) | (dstRow << 17) | (dstReg << 27) | (dstCrossbar << 32));
    }

    size_t warpSize()
    {
        return CROSSBAR_HEIGHT;
    }

    size_t warpClusterBase()
    {
        return CROSSBAR_CLUSTER_BASE;
    }

    size_t numWarps()
    {
        return NUM_CROSSBARS;
    }

    size_t numRegs()
    {
        return CROSSBAR_R;
    }

}

#define REGISTER_INSTRUCTION(inst, type, desc) m.def(#inst "_" #type, &pim::inst<type>, desc)

// Expose the functions to Python
PYBIND11_MODULE(driver, m)
{

    pybind11::class_<pim::RangeMask>(m, "RangeMask")
        .def(pybind11::init<size_t, size_t, size_t>())
        .def_readwrite("start", &pim::RangeMask::start)
        .def_readwrite("stop", &pim::RangeMask::stop)
        .def_readwrite("step", &pim::RangeMask::step)
        .def("__ne__", &pim::RangeMask::operator!=)
        .def("__eq__", &pim::RangeMask::operator==);

    pybind11::class_<pim::Metrics>(m, "Metrics")
        .def(pybind11::init<size_t, size_t>())
        .def_readwrite("latency", &pim::Metrics::latency)
        .def_readwrite("energy", &pim::Metrics::energy)
        .def("__add__", &pim::Metrics::operator+)
        .def("__sub__", &pim::Metrics::operator-);

    pybind11::enum_<pim::MicrooperationType>(m, "MicrooperationType")
        .value("mask", pim::MicrooperationType::MASK)
        .value("rw", pim::MicrooperationType::READ_WRITE)
        .value("logic", pim::MicrooperationType::LOGIC)
        .value("move", pim::MicrooperationType::MOVE);

    REGISTER_INSTRUCTION(read, int, "Read macro-instruction");
    REGISTER_INSTRUCTION(read, float, "Read macro-instruction");
    REGISTER_INSTRUCTION(read, bool, "Read macro-instruction");

    REGISTER_INSTRUCTION(write, int, "Write macro-instruction");
    REGISTER_INSTRUCTION(write, float, "Write macro-instruction");
    REGISTER_INSTRUCTION(write, bool, "Write macro-instruction");

    REGISTER_INSTRUCTION(writeMulti, int, "Write macro-instruction to potentially several rows");
    REGISTER_INSTRUCTION(writeMulti, float, "Write macro-instruction to potentially several rows");
    REGISTER_INSTRUCTION(writeMulti, bool, "Write macro-instruction to potentially several rows");

    REGISTER_INSTRUCTION(add, int, "Performs addition on the given registers");
    REGISTER_INSTRUCTION(add, float, "Performs addition on the given registers");

    REGISTER_INSTRUCTION(negate, int, "Performs negation on the given register");
    REGISTER_INSTRUCTION(negate, float, "Performs negation on the given register");

    REGISTER_INSTRUCTION(absolute, int, "Performs absolute value on the given register");
    REGISTER_INSTRUCTION(absolute, float, "Performs absolute value on the given register");

    REGISTER_INSTRUCTION(subtract, int, "Performs subtraction on the given registers");
    REGISTER_INSTRUCTION(subtract, float, "Performs subtraction on the given registers");

    REGISTER_INSTRUCTION(multiply, int, "Performs multiplication on the given registers");
    REGISTER_INSTRUCTION(multiply, float, "Performs multiplication on the given registers");

    REGISTER_INSTRUCTION(divide, int, "Performs division on the given registers");
    REGISTER_INSTRUCTION(divide, float, "Performs division on the given registers");

    REGISTER_INSTRUCTION(modulo, int, "Performs modulo division on the given registers");

    REGISTER_INSTRUCTION(sign, int, "Returns the sign of the given register");
    REGISTER_INSTRUCTION(sign, float, "Returns the sign of the given register");

    REGISTER_INSTRUCTION(zero, int, "Returns whether the given register is all-zero");
    REGISTER_INSTRUCTION(zero, float, "Returns whether the given register is all-zero");

    m.def("bitwiseNot", &pim::bitwiseNot, "Performs bitwise NOT on the given register");
    m.def("bitwiseAnd", &pim::bitwiseAnd, "Performs bitwise AND on the given registers");
    m.def("bitwiseXor", &pim::bitwiseXor, "Performs bitwise XOR on the given registers");
    m.def("bitwiseOr", &pim::bitwiseOr, "Performs bitwise OR on the given registers");
    m.def("bitwiseMux", &pim::bitwiseMux, "Performs bitwise mux on the given registers");

    m.def("copy", &pim::copy, "Copies the contents from the given register");
    m.def("move", &pim::move, "Performs a move operation");

    m.def("warpSize", &pim::warpSize, "Returns the number of threads per warp");
    m.def("numWarps", &pim::numWarps, "Returns the number of warps in the memory");
    m.def("warpClusterBase", &pim::warpClusterBase, "Returns the exponent base for the cluster group sizes");
    m.def("numRegs", &pim::numRegs, "Returns the number of registers per warp");

    m.def("resetMetrics", &pim::resetMetrics, "Resets the metrics for the given operation type");
    m.def("getMetrics", &pim::getMetrics, "Returns the metrics for the given operation type");

}